1

我刚刚在我的 Ubuntu 服务器上将我的 python 升级到 2.7,并将 Django 重新安装到 1.4。我使用 python Flup 将 Django 应用程序作为 fastcgi 运行,但是当我尝试重新启动应用程序时,它一直告诉我 No module named *

例如

File "./manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
...
File "/usr/local/lib/python2.7/dist-packages/django/utils/importlib.py", line 35, in import_module
__import__(name)
ImportError: No module named *

该问题是由旧 Django (1.3) 项目中的 manage.py 文件引发的,但根据文档https://docs.djangoproject.com/en/dev/releases/1.4/#updated-default-project-layout-和-管理-py

这就是我使用 python-flup 运行项目的方式

exec python ./manage.py runfcgi host=127.0.0.1 port=8083 maxchildren=40 pidfile=$PIDFILE --settings=expand.settings

旧式的 manage.py 将继续像以前一样工作,直到 Django 1.6。在 1.5 中它会引发 DeprecationWarning

4

1 回答 1

1

我通过查看 django 的源代码猜测您的项目布局或 python 路径有问题。

execute_from_command_line(sys.argv)

运行以下代码片段(来自 django/core/management/ init .py),这很可能是您的错误的原因:

# Import the project module. We add the parent directory to PYTHONPATH to
# avoid some of the path errors new users can have.
sys.path.append(os.path.join(project_directory, os.pardir))
import_module(project_name)
sys.path.pop()
于 2012-05-23T09:55:08.580 回答