Django开发服务器(manage.py runserver)路径从哪些地方获取?

0 投票
2 回答
2772 浏览
提问于 2025-04-16 02:20

我最近把一个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 应用。我检查了我的 PATHPYTHONPATH 环境变量,发现它们都没有指向 c:\Users\user\django-projects\foo,而且在我运行python解释器时,sys.path 里也没有这个路径。

我猜我在开发 foo 的过程中,不知道怎么的把 c:\Users\user\django-projects\foo 加入到了django的搜索路径里,但我不记得我是怎么做到的。

所以,经过这些背景介绍,我的问题是:“我该怎么让 manage.pyc:\Python25\Lib\site-packages 中查找,而不是在 c:\Users\user\django-projects\foo 中?”

谢谢,

  • Lexo

2 个回答

1

我解决了这个问题,虽然我不知道到底是哪种方法有效。首先,我删除了项目中的 .pyc 文件,然后我重新索引了我的Windows搜索(我猜是这个解决了问题)。这样一来,错误信息就指向了正确的目录。接着,我发现我在

from baz import settings

foobar/baz/models.py 文件里,这一直是导致问题的原因。我把它改成了

import settings

这样就解决了问题。感谢laurent的所有帮助 :-)

1

manage.py 文件会从当前文件夹中导入 settings.py,并把 settings 作为参数传递给 execute_manager。你可能在 settings.py 中定义了项目的根目录。

撰写回答