在安装了 5 个不同的 python 的 ubuntu 上正确使用 virtualenv

Use virtualenv properly on ubuntu with 5 different python installed

我正在设置一个 ubuntu 15.10 虚拟机(win7 virtualbox 主机)并想使用 python 进行一些使用 python 的机器学习实验(我需要 numpy,scipy、sklearn、matplotlib、xgboost)。

根据我过去的经验,依赖关系可能很棘手,而且这些库并不总是直接安装,我想使用 virtualenv。

Virtualenv 安装文档建议使用 pip 安装包,好的,但是现在当我列出我的盒子上可用的 python 版本时,我发现其中 5 个 (在如果您想知道,这来自 vanilla 15.10 安装...):

hippo@u64-ml:~$ sudo find / -type f -executable -iname 'python*' -exec file -i '{}' \; | awk -F: '/x-executable; charset=binary/ {print }' 
/usr/bin/python3.4
/usr/bin/python3.4m
/usr/bin/python2.7
/usr/bin/python3.5m
/usr/bin/python3.5

所以现在我不确定:

1/ 如何确保我创建的虚拟环境适用于给定的 python 版本?

2/ 我如何安装 python3.5 的软件包?如果我使用 pip3,我不知道它会将二进制文件放在哪里以及 python 将如何找到它们(它是 python3.4、3.4m、3.5、3.5m 吗?)。

编辑以下答案的结果:

hippo@u64-ml:~$ virtualenv -p python3.5 hippo3.5
Running virtualenv with interpreter /usr/bin/python3.5
Using base prefix '/usr'
New python executable in hippo3.5/bin/python3.5
Also creating executable in hippo3.5/bin/python
Installing setuptools, pip...done.   ## installs the right pip
hippo@u64-ml:~$ which pip            
hippo@u64-ml:~$ source hippo3.5/bin/activate   ## now when i activate the env, all works perfect!!
(hippo3.5)hippo@u64-ml:~$ which pip
/home/hippo/hippo3.5/bin/pip
(hippo3.5)hippo@u64-ml:~$ which python
/home/hippo/hippo3.5/bin/python

假设您安装了 virtualenv (sudo apt-get install python-virtualenv),您将使用它来创建一个带有您选择的 Python 二进制文件的环境。 pip 安装在新的 virtualenvs 中,因此您将激活 env 并使用它来安装软件包。

virtualenv -p python3.5 env
source env/bin/activate
pip install flask