Django从s导入本地设置

2024-04-26 07:30:09 发布

您现在位置:Python中文网/ 问答频道 /正文

在我的主目录中,我有一个名为local的文件夹。在其中,有一个名为__init__.pylocal_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为了它。。。在


Tags: 文件pathdjangofrompyimport目录文件夹
2条回答

os.chdir只影响当前工作目录,与Python从何处导入模块无关。在

您需要做的是将local目录添加到Pythonpath。您可以通过修改PYTHONPATH从shell中执行此操作,也可以从Python内部通过修改sys.path来执行此操作:

import sys
sys.path.append(os.path.expanduser("~/local"))
import local_settings

为了回应您对源代码管理的担忧,您只需将源代码管理设置为忽略该文件,和/或在部署脚本中安装一个符号链接,将操作系统上的文件链接到另一个文件。我两个都有,不过在django不是。但这是一项微不足道的任务。在

您的部署布局可能如下所示:

/current ( symlink to /releases/v3 )
/settings/local_settings.py
/releases/v1
/releases/v2
/releases/v3

任务作为部署的一部分运行:

^{pr2}$

如果使用fab或capistrano进行部署,则需要几行配置。我相信这个木偶厨师也可以。在

相关问题 更多 >