【问题标题】:Error when using django-admin.py使用 django-admin.py 时出错
【发布时间】:2013-02-05 03:32:49
【问题描述】:

请多多包涵,因为我是 Python/Django/Unix 的新手。
我正在学习如何在本地和生产环境中使用不同的 settings.py 文件。以下来自the official Django docs page on django-admin.py中关于--settings选项的部分,

--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 变量。这是正确的方法吗?

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

【问题讨论】:

    标签: python django configuration


    【解决方案1】:

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

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

    【讨论】:

    • 感谢您的回答,我已将/ 更改为.,但同样的错误仍然存​​在。
    • 当我运行django-admin 时,我当前的工作目录是项目根目录,但我得到了错误。当我在当前目录追加PYTHONPATH 变量时,错误消失了。
    • 啊,可能是django-admin 没有将当前路径设置为您正在执行的路径。
    【解决方案2】:

    您必须将/ 替换为.

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

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

    import sys
    sys.path.append(additional_path)
    

    【讨论】:

    • 感谢您的回答,我已将/ 更改为.,但同样的错误仍然存​​在。
    猜你喜欢
    • 2011-09-29
    • 2012-06-22
    • 2019-05-27
    • 1970-01-01
    • 2014-10-18
    • 2011-03-14
    • 2011-05-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多