使用 mod_wsgi 的 Django 托管 / 同时使用 Python2.7 和 Python3 的 apache

Django hosting with mod_wsgi / apache with Python2.7 and Python3 concurrently

我有一个由 apache/mod_wsgi 托管的 Django 网站。该站点最初是用 Python2.7 编写的,但我现在正在更改为 Python3.

我有一个 QA 版本的网站可用于外部测试,我想 运行 在 Python3 上那个网站 - 而主要生产网站仍然在 Python2.7有一段时间了。

这些网站目前使用两种不同的 <virtualhost> 设置。

<virtualhost>
...
WSGIDaemonProcess name processes=2 threads=15 display-name=%{GROUP}
...
</virtualhost>

这行得通。但是 - 当尝试使用 Python3 时,我已经针对 Python3 开发环境编译了 (pip install) mod_wsgi 的新版本,但是在 apache 中存在冲突 - 我只能加载一个版本的 mod_wsgi 模块。

是否可以在同一 Apache 实例中同时使用 运行 Python2.7 和 Python3 基于 mod_wsgi 的模块?或者是时候真正改变托管配置(多个 Apache 实例??)或完全改变其他东西?

您将需要使用 2 个不同的 Apache 实例。

根据 comment 来自 mod_wsgi 的创建者:

It is an operating system limitation. You can't load two different versions of the Python library into the one process. – Graham Dumpleton

就是说,如果您的全部目的是从 Python2 切换到 Python3,您为什么要尝试在一个进程中同时 运行?您不应该尝试测试将所有内容切换到 Python 3 是否有效?