Virtualenv安装具有多个Python版本的模块

时间:2017-02-28 21:30:26

标签: python pip virtualenv

我正在尝试通过创建virtualenv来保持依赖项来启动Python 3.6项目。我目前在我的机器上安装了Python 2.7和3.6,因为到目前为止我已经在2.7编码,我希望尝试3.6。我遇到了不同版本的Python没有检测到我在virtualenv中安装的模块的问题。

例如,我使用以下命令创建virtualenv:virtualenv venv

然后我激活virtualenv并使用以下命令安装Django:pip install django

当我使用命令激活Python 2.7或3.6时出现问题 py -2py -3,两个交互式shell都没有检测到Django是否已安装。

只有在我运行python命令时才会检测到Django,当我想使用3.6时,默认为2.7。有没有人知道可能的解决方案,所以我可以让我的virtualenv正常工作?谢谢!如果它很重要我在运行Windows 7的机器上。

3 个答案:

答案 0 :(得分:1)

基于python3.6创建虚拟环境

virtualenv -p python3.6 env36  

激活它:

source env36/bin/activate

然后,venv36已被激活,venv36的点数现已可用,您可以像往常一样安装Django,并且该包将存储在env36/lib/python3.6/site-packages下:< / p>

pip install django

答案 1 :(得分:0)

创建virtualenv时必须选择解释器。

virtualenv --python=PYTHON36_EXE my_venv

替换{3.6}安装的路径代替PYTHON36_EXE。然后,在您激活后,python可执行文件将绑定到3.6,您可以像往常一样pip install Django

答案 2 :(得分:0)

关键是pip为特定版本的Python以及非常具体的位置安装内容。基本上,虚拟环境中的pip命令专门为您的虚拟环境正在使用的解释器设置。因此,即使您在激活该环境时明确调用另一个解释器,它也不会获取为默认解释器安装的包pip