使用django-admin.py时出错

时间:2013-02-20 07:43:15

标签: python django configuration

请耐心等待我,因为我是Python / Django / Unix的新手。
我正在学习如何在本地和生产环境中使用不同的settings.py文件。以下内容来自the official Django docs page on 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

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

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

2 个答案:

答案 0 :(得分:2)

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

含义--settings=mysite/local实际上应该是--settings=mysite.local。如果您在运行django-admin时当前的工作目录是项目根,那么您不必触摸PYTHONPATH

答案 1 :(得分:1)

您必须将/替换为.

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

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

import sys
sys.path.append(additional_path)