如何部署使用 virtualenvwrapper 创建的 python/django?

How do I deploy python/django which was created with virtualenvwrapper?

我了解了在我的开发系统上使用 virtualenvwrapper 和 virtualenv 的重要性和价值。我有一个用于开发的 Ubuntu 16 桌面。哦,顺便说一句,我不想​​使用像 Heroku 这样的 PaaS,因为我已经支付了 VPS 托管费用。

对于 virtualenvwrapper,我只使用命令 workon 并激活 myproject 的环境(我的项目是某个项目)。我的部署环境是具有 root shell 访问权限的 VPS 服务器。我 运行 一些 PHP 带有 apache 的应用程序,所以我安装了 mod_wsgi.
我已阅读其他帖子,但不确定在生产中使用 virtualenv。我的意思是我从 shell 会话中激活了环境。

不知道

  1. 如果我关闭 shell 环境会保持激活状态吗?
  2. 如果是这样,我能否在同一台 vps 服务器上或什至在同一域中拥有多个激活环境(我在生产服务器上放置了多个域)。
  3. 我知道的另一个选择是 运行 以 & 结尾的激活命令将其发送到后台。正如我的网络托管服务提供商指出的那样,这有点像 hack。这是有问题的,因为如果系统重新启动,我必须进入并重新激活 python virtualenvs。

我参加了有关 python 网络应用程序的课程,但他们似乎遗漏了这些转向生产的细节。或者他们建议使用 PaaS 类型的解决方案,例如 Heroku。我已经支付了 VPS 托管费用,我知道这是可以做到的。 谢谢, 布鲁斯

阅读:

通过您的 shell 访问,在您激活的 Python 虚拟环境中,运行 Python 解释器并输入:

import sys
print(sys.prefix)

它输出的路径是您应该提供给您用于守护进程组的 WSGIDaemonProcess 指令的 python-home 选项的路径。

如果您没有使用守护进程组,尤其是因为您正在使用 PHP,那么请开始使用它们。还要确保您正在关闭 Python 嵌入式模式的解释器初始化。上面的三个帖子涵盖了所有这些细节。