适用于不同项目的虚拟环境和python版本

时间:2017-04-06 08:58:35

标签: python virtualenv pyenv

让我首先概述我想要的解决方案,然后详细说明如何实现这种状态的具体问题。

我很快就在python中启动了两个编码项目。我之前使用过python,但从未使用过这么大的项目。我的理想情况是有一个设置,我可以运行虚拟环境和各种项目的不同python版本。一些研究向我指出了virtualenv / virtualenvwrapper和pyenv。似乎使用pyenv-virtualenvpyenv-virtualenvwrapper有一种很好的方法来为特定项目指定virtualenvironment和python版本。

问题:一旦我为特定项目设置了virtualenvironment和python版本,我可以轻松地在稍后阶段切换到更新的python版本吗?让我们说我已经用python 3.4启动了项目A,并且在将来的一年内我想将所有内容都移到python 3.6。这可能是一个整洁的方式吗?

1 个答案:

答案 0 :(得分:1)

不确定

$ rm -r my-python-3.4-env
$ virtualenv -p python3.6 my-python-3.6-env
$ source my-python-3.6-env/bin/activate

换句话说,每个虚拟环境只是一个包含必要文件的文件夹。你"激活"一个带有source .../activate命令的环境(如果是virtualenv),你就可以轻松地离开它。要切换到不同的环境,只需使用特定的Python可执行文件创建一个新的环境并激活它。

您需要注意的是保持安装的可重复性,这意味着如果您依赖外部模块(现代项目通常会这样做),您不希望手动安装每个依赖项,而是自动执行此操作。例如,您创建一个setuptools setup.py file列出您的依赖项,然后让它自动将它们安装到您的新环境中:

$ source my-python-3.6-env/bin/activate
(my-python-3.6-env) $ python setup.py develop