在我的主目录中,我有一个名为local
的文件夹。在其中,有一个名为__init__.py
和local_settings.py
的文件。我的django应用程序在一个完全不同的目录中。当应用程序在调试模式下运行时,我希望它加载local_settings.py
文件。这是怎么做到的?我读了以下内容:
Import a module from a relative path
Importing files from different folder in Python
http://docs.python.org/tutorial/modules.html
基本上,这些教程允许从另一个目录导入,但是完全不同的工作树呢?我不想继续做。。等等,有没有办法转到主目录?在
我尝试了以下代码:
import os, sys
os.chdir(os.path.join(os.getenv("HOME"), 'local'))
from local_settings import *
但我一直在我的apache中看到错误错误.log为了它。。。在
os.chdir
只影响当前工作目录,与Python从何处导入模块无关。在您需要做的是将
local
目录添加到Pythonpath。您可以通过修改PYTHONPATH
从shell中执行此操作,也可以从Python内部通过修改sys.path
来执行此操作:为了回应您对源代码管理的担忧,您只需将源代码管理设置为忽略该文件,和/或在部署脚本中安装一个符号链接,将操作系统上的文件链接到另一个文件。我两个都有,不过在django不是。但这是一项微不足道的任务。在
您的部署布局可能如下所示:
任务作为部署的一部分运行:
^{pr2}$如果使用fab或capistrano进行部署,则需要几行配置。我相信这个木偶厨师也可以。在
相关问题 更多 >
编程相关推荐