Django开发服务器(manage.py runserver)路径从哪些地方获取?
我最近把一个django应用从 c:\Users\user\django-projects\foo\foobar
移动到了 c:\Python25\Lib\site-packages\foo\foobar
(这个路径在python的搜索路径里)。然后我在 django-projects
目录下新建了一个应用,并把 foo.foobar
加入到了 INSTALLED_APPS
设置中。当我尝试运行新应用的开发服务器(用 manage.py runserver
)时,出现了错误 ImportError: No module named foobar
。
查看错误信息后发现,它在 c:\Users\user\django-projects\foo\..\foo\foobar
这个路径下寻找 foobar
应用。我检查了我的 PATH
和 PYTHONPATH
环境变量,发现它们都没有指向 c:\Users\user\django-projects\foo
,而且在我运行python解释器时,sys.path
里也没有这个路径。
我猜我在开发 foo
的过程中,不知道怎么的把 c:\Users\user\django-projects\foo
加入到了django的搜索路径里,但我不记得我是怎么做到的。
所以,经过这些背景介绍,我的问题是:“我该怎么让 manage.py
在 c:\Python25\Lib\site-packages
中查找,而不是在 c:\Users\user\django-projects\foo
中?”
谢谢,
- Lexo
2 个回答
我解决了这个问题,虽然我不知道到底是哪种方法有效。首先,我删除了项目中的 .pyc
文件,然后我重新索引了我的Windows搜索(我猜是这个解决了问题)。这样一来,错误信息就指向了正确的目录。接着,我发现我在
from baz import settings
的 foobar/baz/models.py
文件里,这一直是导致问题的原因。我把它改成了
import settings
这样就解决了问题。感谢laurent的所有帮助 :-)
manage.py
文件会从当前文件夹中导入 settings.py
,并把 settings
作为参数传递给 execute_manager
。你可能在 settings.py
中定义了项目的根目录。