导入python/Django模块在debian vps上失败

2024-04-20 15:06:36 发布

您现在位置:Python中文网/ 问答频道 /正文

使用gigatux的debian vps。 使用django/python和mod\wsgi,im使用virtualenvs,因为我希望能够托管一些不同级别的不同站点。在

我有一个问题,使网站运行,现在我甚至不能做一个syncdb,因为它拒绝导入django包,在网站包文件夹内

我在我的django.wsgi公司从apache2/sites available/default中的wsgi config行调用的文件

import sys
sys.path.append('/home/shofty/virtualenvs/sitename/lib/python2.5/site-packages')

我在那个文件夹里有不少包裹。在

但是syncdb不会运行。在

现在我在vps上安装了django,而没有将其强制到virtualenv中,然后我就可以运行syncdb了。但是syncdb无法导入installedapps中的模块,这些模块位于站点包中,但没有安装在vps上。所以我知道上面的说法行不通。在

我很感激有一个更专业的地方来问这个问题,我只是不知道。告诉我这是什么,如果你知道在哪里可以得到答案。我有两天时间让这个vps运行,说实话,我准备放弃。在


Tags: 模块django文件夹modwsgi站点网站vps
2条回答

几周前,我努力让debian、apache、django、mod wsgi和virtualenvs玩得很好。看看我为wsgi文件制作的模板site.addsitedir'和'系统路径追加'在哪里'site.addsitedir'指向站点包并'系统路径追加'指向主机上的应用程序副本。下面是jinja2模板的第一部分django.wsgi公司在

import sys
import os
import site

site.addsitedir('{{ site_package }}')
sys.path.append('{{ local_source }}')
...

“local_source”类似于“/home/jdoe/my_project”,“site_package”类似于“/usr/local/lib/python2.6/site packages”。在

我记得有一段时间我还记得有个问题django.wsgi公司'和'设置.py“必须在同一个目录中。我希望这有帮助。在

把环境搞混也无济于事。在

显然,有些包安装在捆绑的python中,另一些安装在virtualenv中。在

我的建议,坚持使用virtualenv

并且总是通过source /path/to/venv/bin/activate来开发virtualenv

在wsgi文件中,启用virtualenv。这不是通过导入site_包来实现的,而是要求mod_wsgi使用那个python。您可以通过以下命令执行此操作:

activate_this = '/path/to/venv/bin/activate_this.py'
execfile(activate_this, dict(__file__=activate_this))

相关问题 更多 >