Django:奇怪的导入错误

时间:2011-06-28 11:24:18

标签: python django

我正在部署(专有)Django应用程序(支持不良;-))。我唯一需要做的就是设置一个新的Django项目并实现应用程序的URL。所以我的url配置如下:

  1 from django.conf.urls.defaults import patterns, include, url
  2 
  3 urlpatterns = patterns('',
  4     url(r'^', include('ap01.urls')),
  5 )

相关应用程序也会添加到我的INSTALLED_APPS设置中。

我可以验证(./manage.py验证),一切都很好。运行应用程序时,我收到以下导入错误:

ImportError at /
No module named ap01.urls

该模块存在于Django报告的Python Path中,当手动导入urls模块时,一切正常,即:

./manage.py shell 
__import__('ap01.urls')

我将设置与QA和开发服务器进行了比较,所有内容似乎都正确到位。唯一不同的是Python版本(QA上的2.6和dev;这台新机器上的2.7)。

1 个答案:

答案 0 :(得分:2)

我会这样调试:

您需要知道引发ImportError的位置。然后添加如下内容:

import sys
raise Exception(sys.path)
  • sys.path中的目录是“ap01”吗?
  • 目录ap01是否包含__init__.py文件?
  • 你的python解释器是什么用户ID(引发导入异常的那个)?尝试:import os, sys; assert False, (os.getuid(), sys.path)
  • 也许这个用户ID没有足够的权限来读取文件?获取此用户“su”(如果您使用像操作系统这样的unix),然后尝试阅读它:less ...../ap01/...py