2017-04-06 45 views
0

让我先概述我想要的解决方案,然后详细阐述如何实现这种状态的具体问题。针对不同项目的虚拟环境和python版本

我很快就开始在Python中的两个编码项目。我之前使用过python,但从来没有在这样的大项目上使用过。我的理想场景是设置一个可以运行虚拟环境和各种项目的不同python版本的设置。一些研究指向我virtualenv/virtualenvwrapper和pyenv。它似乎使用pyenv-virtualenvpyenv-virtualenvwrapper有一个很好的方式来指定特定项目的virtualenvironment和python版本。

问题:一旦我为特定项目设置了virtualenvironment和python版本,我可以轻松地在稍后的阶段切换到新的python版本?比方说,我已经开始使用python 3.4开发项目A,并且在将来的一年中,我希望将所有内容都移至python 3.6。这是否可能以一种整洁的方式?

回答

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 
+0

非常感谢!那正是我期待的! – math