【发布时间】:2014-10-09 16:10:14
【问题描述】:
我正在使用虚拟主机在 Apache2 服务器上为几个 Django 站点提供服务。对于其中一个站点,我在日志中不断收到带有此消息的内部服务器错误:
[Thu Oct 09 15:11:24.597107 2014] [:error] [pid 8370:tid 140126138050304] [remote 128.30.86.202:15793] ImportError: 无法导入设置“calendar.settings”(是否在 sys.路径?设置文件中是否有导入错误?):没有名为设置的模块
这是我的calendar/ 目录的样子:
|-- calendar
| |-- forms.py
| |-- __init__.py
| |-- models.py
| |-- settings.py
| `-- views.py
|-- manage.py
|-- urls.py
`-- wsgi.py
当我在错误日志中打印 sys.path 时,calendar 和 calendar/calendar 目录就在那里。
我已尝试直接运行wsgi.py 目录和calendar/settings.py,但没有收到任何导入错误。我尝试运行 manage.py shell 并再次没有导入错误。
我检查了/etc/apache2/apache2.conf 中的WSGIPythonPath 是否包含calendar 和calendar/calendar 的完整路径。
我怀疑这是权限错误。目录中所有文件的所有者/组是ubuntu:ubuntu,其中ubuntu 是服务器上的用户名。所有者应该是谁,权限应该是什么?谢谢!
如果不是权限问题,是否有其他测试方法的想法?谢谢!
【问题讨论】:
-
是的...不要给应用程序提供与项目相同的名称。 Django 有时会窒息。
-
原来错误是因为它在查看应用程序之前在 Python 的日历库中查找设置。谢谢大家!
-
很高兴你已经解决了这个问题。在自己的项目中使用现有 python 库的名称确实不是一个聪明的主意。