所以我在 Ubuntu 上设置了一个 virtualenv,安装了所有东西,并让开发站点运行runserver
. 我自己的所有单元测试都通过了,但是许多 Django 包的单元测试没有通过。
所以我试图git bisect
弄清楚这一点,检查我最早的提交。我在历史上走得太早了,当开发环境使用不同的数据库引擎、包等时,网站当然无法运行。然后我决定做一些比失败的 Django 单元测试更重要的事情(因为我自己的工作),所以我回到了开发分支中的最新提交。
我runserver
再次启动,但是这次当我重新加载主页时,我遇到了错误:
Traceback:
File "...venv.../local/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
101. request.path_info)
File "...venv.../local/lib/python2.7/site-packages/django/core/urlresolvers.py" in resolve
298. for pattern in self.url_patterns:
File "...venv.../local/lib/python2.7/site-packages/django/core/urlresolvers.py" in url_patterns
328. patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
File "...venv.../local/lib/python2.7/site-packages/django/core/urlresolvers.py" in urlconf_module
323. self._urlconf_module = import_module(self.urlconf_name)
File "...venv.../local/lib/python2.7/site-packages/django/utils/importlib.py" in import_module
35. __import__(name)
File "...project dir.../myproject/urls.py" in <module>
2. import frontpage.views
Exception Type: ImportError at /
Exception Value: No module named views
在我尝试 git bisect 之前,一切都运行良好。但不再是了,至少在我的本地机器上。
所以我四处搜索,并将我ROOT_URLCONF
的从更改'myproject.urls'
为 just 'urls'
。现在我收到此错误消息:
Traceback:
File "...venv.../local/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
101. request.path_info)
File "...venv.../local/lib/python2.7/site-packages/django/core/urlresolvers.py" in resolve
298. for pattern in self.url_patterns:
File "...venv.../local/lib/python2.7/site-packages/django/core/urlresolvers.py" in url_patterns
328. patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
File "...venv.../local/lib/python2.7/site-packages/django/core/urlresolvers.py" in urlconf_module
323. self._urlconf_module = import_module(self.urlconf_name)
File "...venv.../local/lib/python2.7/site-packages/django/utils/importlib.py" in import_module
35. __import__(name)
Exception Type: ImportError at /
Exception Value: No module named urls
我用谷歌搜索了一些,并认为也许我的 Python 路径不包括我的项目目录......但是不,当我在项目文件中包含 a 时,它完全print sys.path
可以settings.py
!
那么这里有什么问题呢?我正在使用 Django 1.4.3,并使用python manage.py runserver
. 我发誓我的网站在几个小时前还在工作,而且我已经完成了git checkout development
很多git reset
次......我尝试删除 virtualenv,重新创建它,然后重新安装所有 Python 包。我仍然遇到同样的错误。
(另外,我确实激活了 virtualenv,我什至尝试重新启动,以防万一......到目前为止没有运气)
更新
按照 Lennart 的建议,我在导入失败之前启动了调试器,发现它import frontpage
有效,但不是import frontpage.views
,frontpage.tests
或其他任何东西。我__init__.py
的目录中也有一个文件frontpage
。至此,sys.path
包含我的项目文件夹就好了...
我也已经包括frontpage
在我INSTALLED_APPS
的里面了。
固定的
感谢 Lennart,我检查了该frontpage
模块确实被正确导入。显示了正确的.pyc
文件,但这让我想知道 pyc 文件是否与我的实际代码不同步。
所以我删除了所有的 pyc 文件,重新启动了服务器,一切又正常了:)