在Windows上使用Apache / mod_wsgi从virtualenv运行Python

时间:2011-01-06 10:51:55

标签: python apache wamp virtualenv wampserver

我正在尝试设置WAMP服务器。我已经让Apache正常工作了,而且我已经安装了mod_wsgi。

问题是,我正在为我的项目使用虚拟环境(使用virtualenv)。显然,mod_wsgi在查找我的Django安装时遇到了问题。

我试图了解如何让mod_wsgi与virtualenvs一起使用。文档似乎认为这是不可能的:

  

请注意,WSGIPythonHome指令只能在UNIX系统上使用,并且在Windows系统上不可用。这是因为在Windows系统上,Python DLL的位置似乎决定了Python查找Python库文件的位置。目前还不知道如何创建独立于Windows上的主要Python安装的独特基线环境。

从这里开始:mod_wsgi + virtualenv docs

有没有人对如何使这项工作有所了解?

1 个答案:

答案 0 :(得分:13)

您可以通过Python以编程方式激活环境,在导入任何其他内容之前将其添加到.wsgi文件中。

来自virtualenv's docs

  

有时你不能或不想   使用由...创建的Python解释器   virtualenv。例如,在   mod_python或mod_wsgi环境,   只有一名翻译。

     

幸运的是,这很容易。你必须使用   要安装的自定义Python解释器   库。但是要使用库,你   只需要确定路径   正确。可以使用脚本   纠正路径。你可以设置   环境如:

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

这将改变sys.path甚至   更改sys.prefix,但也允许你   使用现有的口译员。项目   在您的环境中将首先显示   在sys.path上,在全局项之前。   但是,这无法撤消   激活其他环境,或   已导入的模块。您   例如,不应该试图   在Web之前激活环境   请求;你应该激活一个   环境尽早,和   在这个过程中不要再做了。