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

在Windows上使用Apache/mod_wsgi从VirtualNV运行Python,python,apache,wamp,virtualenv,wampserver,Python,Apache,Wamp,Virtualenv,Wampserver,我正在尝试设置WAMP服务器。我已经让Apache正常工作,并且我已经顺利安装了mod_wsgi 问题是,我正在为我的项目使用虚拟环境(使用VirtualEnvironment)。很明显,mod_wsgi在定位我安装的Django时遇到了问题 我试图理解如何让mod_wsgi与virtualenv很好地协同工作。文档似乎认为这是不可能的: 请注意,WSGIPythonHome指令只能在UNIX系统上使用,在Windows系统上不可用。这是因为在Windows系统上,Python DLL的位置似乎

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

问题是,我正在为我的项目使用虚拟环境(使用VirtualEnvironment)。很明显,mod_wsgi在定位我安装的Django时遇到了问题

我试图理解如何让mod_wsgi与virtualenv很好地协同工作。文档似乎认为这是不可能的:

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

从这里开始:


有人知道如何实现这一点吗?

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

发件人:

有时你不能或不想 使用由创建的Python解释器 虚拟世界。例如,在 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之前激活环境 要求你应该激活一个 尽早保护环境,以及 在这个过程中不要再这样做了


这个看起来不错,我来试试。但它看起来会在我的系统上使用“主”Python interepereter,而不是使用virtualenv创建的interepereter,对吗?这意味着我只能在我的系统上使用一个版本的Python?(这只是一个小问题)。它将使用解释器mod_wsgi嵌入到apache中,但将确保sys.path正确填充安装在virtualenvSearchers中的库-您可以在此处看到这一实现:底部显示如何激活和设置wsgi.py中的路径变量以删除绝对路径,您还可以执行
activate\u this=os.path.dirname(uuu file\uuuu)+'/env/bin/activate\u this.py'
(假设您的虚拟环境与WSGI文件位于同一位置。关于Windows上WSGIPythonHome的注释实际上是错误的。限制已解除,可能是在mod\u WSGI 3.X中(不确定)。注释已被删除。