1

请多多包涵,因为我通常是 Python/Django/Unix 的新手。
我正在学习如何在settings.py本地和生产环境中使用不同的文件。以下内容来自官方 Django 文档页面中有关--settings选项的部分,django-admin.py

--settings 示例用法:

django-admin.py syncdb --settings=mysite.settings

我的项目结构如下:

mysite
L manage.py 
L mysite
   L __init__.py  
   L local.py
   L urls.py
   L production.py 
   L wsgi.py

mysite但是,当我从父目录运行以下命令时,

$ django-admin.py runserver --settings=mysite.local

我收到以下错误:

File "/Users/testuser/.virtualenvs/djdev/lib/python2.7/site-packages/django/conf/__init__.py", line 95, in __init__
    raise ImportError("Could not import settings '%s' (Is it on sys.path?): %s" % (self.SETTINGS_MODULE, e))
ImportError: Could not import settings 'mysite.local' (Is it on sys.path?): No module named mysite.local

根据我在网络上收集的各种文章,我认为我需要将我的项目目录路径添加到PYTHONPATHbash 配置文件中的变量。这是正确的方法吗?

编辑:将斜杠更改为点,但同样的错误仍然存​​在。

4

2 回答 2

2

--settings标志采用虚线 Python 路径,而不是文件系统上的相对路径。

意思--settings=mysite/local其实应该是--settings=mysite.local。如果你当前的工作目录是你运行时的项目根目录django-admin,那么你不应该触摸你的PYTHONPATH.

于 2013-02-20T07:46:30.363 回答
1

你必须替换/.

$ django-admin.py runserver --settings=mysite.local

您也可以更新 PYTHONPATH manage.py。在里面if __name__ == "__main__":添加以下内容。

import sys
sys.path.append(additional_path)
于 2013-02-20T07:47:58.320 回答