在django中导入设置的奇怪错误

die*_*us9 8 python django settings importerror django-settings

我有很多项目在ubuntu中使用python2.7和virtualenv/virtualenvwrapper,在我的工作中,一些开发人员使用macosx和windows,通常我像往常一样创建项目:

django-admin.py start project x
Run Code Online (Sandbox Code Playgroud)

我们使用svn作为cvs,但在某些时候,对我来说没有任何理性,当我尝试类似的东西:

python manage.py runserver
Run Code Online (Sandbox Code Playgroud)

不起作用,但只适合我,并在我的笔记本电脑,这不会发生在制作服务器或其他开发人员.

有任何想法吗?

我收到了这个错误:

错误:在包含'manage.py'的目录中找不到文件'settings.py'.看来你已经定制了东西.您必须运行django-admin.py,并将其传递给您的设置模块.(如果文件settings.py确实存在,则会以某种方式导致ImportError.)

但显然,设置文件存在并且位于manage.py文件的同一文件夹中,并且不适合我......

这也发生在django和appengine上

mip*_*adi 28

我收到了这个错误:

错误:在包含'manage.py'的目录中找不到文件'settings.py'.看来你已经定制了东西.您必须运行django-admin.py,并将其传递给您的设置模块.(如果文件settings.py确实存在,则会以某种方式导致ImportError.)

manage.py该警告每当发生导入错误的脚本打印,所以如果你的settings.py模块导入的东西,导致进口的错误,manage.py依然会打印警告.

诊断的一种方法.将(暂时)改变manage.py

#!/usr/bin/env python
from django.core.management import execute_manager
try:
    import settings # Assumed to be in the same directory.
except ImportError:
    import sys
    sys.stderr.write("Error: Can't find the file 'settings.py' in the directory containing %r. It appears you've customized things.\nYou'll have to run django-admin.py, passing it your settings module.\n(If the file settings.py does indeed exist, it's causing an ImportError somehow.)\n" % __file__)
    sys.exit(1)

if __name__ == "__main__":
    execute_manager(settings)
Run Code Online (Sandbox Code Playgroud)

#!/usr/bin/env python
from django.core.management import execute_manager
import settings # Assumed to be in the same directory.

if __name__ == "__main__":
    execute_manager(settings)
Run Code Online (Sandbox Code Playgroud)

并查看运行时打印的堆栈跟踪$ python manage.py runserver.