gpt4 book ai didi

python - 在不破坏导入的情况下将独立的 django 脚本放在哪里?

转载 作者:太空狗 更新时间:2023-10-30 00:33:19 26 4
gpt4 key购买 nike

我对 Python 还是很陌生。

我有一个 Django 网站,其中包含多个应用程序和一个 /libs 目录。我需要添加几个将使用我的 Django 模型的 cron 作业。我已经解决了所有这些问题,没什么大不了的。

不过,我的导入有问题。

我想将这些脚本包含在它们通常所属的 App 中。但是当我从命令行执行脚本时,它无法从 /libs 目录加载模块。

为了具体说明目录结构,想象一下这个伪代码:

import ./../libs/mysharedlib.py   

换句话说,脚本和共享库是:

~/project/myapp/myscript.py

~/project/libs/mysharedlib.py

我知道我可以将 ~/project 添加到我的 PYTHONPATH 但是我不得不担心在部署期间这样做并且感觉它被破坏了。

我应该将我的脚本从我的应用程序中移出并将它们放在 ~/project 中吗?有没有更好的办法?

最佳答案

有一个更好的方法,自定义管理命令可以解决这个问题。 https://docs.djangoproject.com/en/dev/howto/custom-management-commands/

这些可让您编写独立的实用程序脚本。您可以将它们作为 cron 或作为实用程序运行。它们使用与您的 Django 应用程序中任何其他模块完全相同的路径。

虽然这些解决了导入问题,但您的 libs 目录是否有 __init__.py 文件?你能在你的 View 中导入你的 lib 目录吗?还是您的导入在您的 cron 脚本中不起作用?无论哪种方式,自定义管理命令都可以解决这个问题。

关于python - 在不破坏导入的情况下将独立的 django 脚本放在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12019661/

26 4 0