如何在django应用程序(linux ubuntu)中的独立python文件中正确运行django.setup()?

如何在django应用程序(linux ubuntu)中的独立python文件中正确运行django.setup()?,django,python-2.7,ubuntu,Django,Python 2.7,Ubuntu,我试图在django项目中运行一个独立的python文件。问题代码如下(standalone.py): 我收到的错误是:“没有名为myproject.settings的模块”。不知何故,无法识别项目设置文件 该文件在我的本地计算机上运行良好,但是在linux ubuntu服务器上运行该文件时会出现问题 此文件正在应用程序中运行:myproject>myapp>standalone.py 当我将此文件移动到myproject所在的同一目录时,该文件运行正常,因此我假设应用程序目录中无法识别mypr

我试图在django项目中运行一个独立的python文件。问题代码如下(standalone.py):

我收到的错误是:“没有名为myproject.settings的模块”。不知何故,无法识别项目设置文件

该文件在我的本地计算机上运行良好,但是在linux ubuntu服务器上运行该文件时会出现问题

此文件正在应用程序中运行:myproject>myapp>standalone.py

当我将此文件移动到myproject所在的同一目录时,该文件运行正常,因此我假设应用程序目录中无法识别myproject.settings模块

作为临时修复:

sys.path.append('path_to_myproject/')

似乎解决了这个问题,但肯定不是我想要的产品代码。对如何解决这个问题有什么建议吗?提前感谢

如果设置模块是
myproject.settings
,则外部
myproject
目录必须位于python路径上。如果脚本位于外部
myproject
目录(包含
manage.py
)中,则无需执行任何操作,因为当前目录位于路径上。否则,您必须手动将目录添加到python路径

向python路径添加内容的方法是
sys.path.append()
,因此您无法避免在生产代码中使用它(除非改用
PYTHONPATH
环境变量)。如果添加父目录而不是硬编码路径,您可能会更高兴

sys.path.append('..')

你为什么不做一个Django管理命令呢?谢谢你的帖子,我在文档中读到了这篇文章,但不太明白如何将它应用到我的脚本中。谢谢你的帖子,我正在寻找一种方法来做到这一点。你认为还有更好的办法吗?如果不添加到sys.pathNo,就无法避免将目录添加到python路径。如果包含
myproject
的目录不在Python路径上,您希望Python如何导入
myproject/settings.py
?我同意,这比硬编码路径要好得多,不过我只想确保它是在django中运行独立Python脚本的正确约定
sys.path.append('..')