8

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

django-admin.py start project x

我们将 svn 用于 cvs,但在某些时候,对我来说没有任何合理性,当我尝试以下操作时:

python manage.py runserver

不起作用,但仅适用于我并且在我的笔记本电脑中,在生产服务器或其他开发人员中不会发生。

有任何想法吗?

我收到了这个错误:

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

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

django 和 appengine也会发生这种情况

4

3 回答 3

29

我收到了这个错误:

错误:在包含“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)

#!/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)

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

于 2011-05-17T21:06:15.903 回答
3

如果您在尝试开始使用 django 和 appengine 时遇到此错误,同时遵循http://www.allbuttonspressed.com/projects/djangoappengine上的指南

并且您创建了指向文件夹的符号链接,创建 djangoappengine 符号链接时指南是错误的。你需要去1个目录,例如

不是:

将以下文件夹复制到您的项目中(例如,django-testapp):

django-nonrel/django => <project>/django
djangotoolbox/djangotoolbox => <project>/djangotoolbox
django-autoload/autoload => <project>/autoload
django-dbindexer/dbindexer => <project>/dbindexer
djangoappengine => <project>/djangoappengine

固定的:

将以下文件夹复制到您的项目中(例如,django-testapp):

django-nonrel/django => <project>/django
djangotoolbox/djangotoolbox => <project>/djangotoolbox
django-autoload/autoload => <project>/autoload
django-dbindexer/dbindexer => <project>/dbindexer
djangoappengine/djangoappengine => <project>/djangoappengine

注意最后一行。

于 2012-11-12T14:08:38.587 回答
1

我通过 django 代码搜索了一个小时,直到我遇到了这个:

manage.py [command] --traceback

结果发现我的应用程序深处存在导入错误。一旦我看到错误,就花了十秒钟来修复。:/

于 2012-11-09T01:23:56.030 回答