【发布时间】:2011-03-04 22:34:28
【问题描述】:
我正在尝试让我的 Django 项目在生产服务器上运行。
我使用 pip 设置环境,因此它与一切运行良好的开发环境相同。唯一的区别是我不在生产环境中使用 virtualenv,因为这个项目是唯一将在生产环境中运行的项目。同样在生产中,有一个 Nginx 反向代理来提供静态内容,并将动态请求传递给 Apache2。
Apache wsgi 文件如下:
import sys, os
sys.path.append('/home/project/src')
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
访问服务器时出现导入错误:
ImproperlyConfigured: Error importing middleware middleware: "cannot import name UserProfile"
指的是设置所引用的src/文件夹下的middleware.py。但我可以从 ./manage.py shell 提示符中同时导入中间件和 UserProfile 类。
wsgi 文件中的路径似乎有问题,但我看不到是什么。目录结构为:
/home/project
/home/project/src (which contains the settings.py, middleware.py and app folders)
/home/apache/apache.wsgi
非常感谢任何帮助。
谢谢, oMat
【问题讨论】:
-
您安装的应用程序看起来如何?尝试将“/home/project/”添加到您的系统路径
-
尝试添加您输入
django-admin.py ...的路径 -
我安装的应用程序是这样的:INSTALLED_APPS = ('django.contrib.auth', ..., 'profiles', 'products', ...)。您的意思是将“/home/project”添加到 wsgi 文件中的 sys.path 吗?这不起作用。
-
导入中间件看起来不是问题,更像是循环导入问题。
-
但是我将无法在开发机器上运行它,或者无法从生产机器上的
./manage shell中导入这些模块,对吧?