维护的虚拟环境服务的正确位置是什么?

维护的虚拟环境服务的正确位置是什么?

我将在 Ubuntu 服务器 (12.04) 上安装和维护基于 Python 2.7 的服务器应用程序。维护模型是创建一个虚拟环境并在其中安装应用程序标准库(来自 PyPI)和自定义库(定制),并根据需要更新它们。一个单独的文件夹包含“应用程序”,它由配置文件和特定于应用程序的 Python 文件组成。

据我所知,我需要的 Ubuntu 提供的软件包只有 和pythonpython-virtualenv我可能会自定义安装座位来管理 venv - 在这种情况下,我会sudo easy_install pew接受它所到之处都是正确的(pew 不在 12.04 仓库中)。

我隐约意识到应用程序应该位于/opt/srv类似的地方,并且服务器应用程序可能位于与用户应用程序不同的位置。 给出所有这些:

  • 虚拟环境应该位于哪里?
  • 服务器应用程序文件夹应该位于哪里?

答案1

对于 Django 应用程序,Adam Bard 推荐将您的虚拟环境定位在 ,/opt/apps/<appname>-env并将您的应用程序定位在/opt/apps/<appname>-env/site。(非常感谢 don.joey 提供的出色链接。)

稍微不相关的是,我还发现了 Hynek Schlawack 的Python 部署反模式使用本机包部署 Python 应用程序是有用的读物​​。

基于此,我对文件系统层次标准并检查了/opt我的台式机上的文件夹,我选择了:

  • /opt/virtualenv/<env_name>对于虚拟环境
  • /opt/<vendor_name>/<app_name>用于服务器应用程序文件夹

这使我可以根据自己的需要为不同的应用程序、版本等创建多个独立的虚拟环境和应用程序文件夹。

答案2

本质上虚拟环境的位置无关紧要。你可以把它放在任何你想要的地方。你只需要运行它source some_venv/bin/activate,然后就可以开始了。

传统位置是~/.virtualenvs。

我使用不同的设置,其中有一个 ~/projects 文件夹,其中包含不同的虚拟环境包含不同项目的 Python 代码。这很好也很容易,因为您可以将所有内容放在一起。对于某些人来说,它可能看起来有点混乱,因为您的 venv 中有一个 bin、local 和更多文件夹。

我使用以下方法管理这些虚拟环境包装器它位于存储库中。我还没有机会测试 pew。

如果 virtualenvwrapper 和 virtualenv 设置正确,则工作流程如下:

mkvirtualenv some_venv
workon some_venv
cdvirtualenv
deactivate

相关内容