安装两个不同Python版本时创建virtualenv遇到问题求助
搞定Python 2.7与3.6共存,创建专属虚拟环境的实操指南
Hey Daniel, 看你已经搭好了Python 2.7的虚拟环境,又完成了Python 3.6的基础安装(还贴心勾了PATH、全用户和自动装pip),接下来重点就是把两个版本的环境彻底隔离开,避免互相干扰,下面是具体步骤:
一、先确认两个版本能正确区分
安装完Python 3.6后,先在命令行敲几个命令验证下,确保系统能识别不同版本:
- 调用Python 2.7:直接敲
python(如果之前的2.7已经在PATH里),或者更稳妥用python2.7明确指定 - 调用Python 3.6:敲
python3或者python3.6(后者更精准,避免和其他Python3版本混淆) - 对应的pip也是同理:
pip对应Python2.7,pip3.6对应Python3.6
验证版本的命令:
python --version python3.6 --version pip --version pip3.6 --version
二、创建Python 3.6专属虚拟环境
你之前用的是virtualenv,这里给你两种方案,选你顺手的来:
方案1:继续用virtualenv指定版本
如果习惯了virtualenv,直接在命令里指定Python3.6的可执行文件就行:
# 要是python3.6已经在PATH里,直接这么写 virtualenv -p python3.6 my_py36_project_env # 要是PATH里没识别到,就写完整路径,比如Windows下可能是 # virtualenv -p "C:\Program Files\Python36\python.exe" my_py36_project_env
方案2:用Python3.6自带的venv(更推荐)
Python3.3及以上自带了venv模块,不用额外装virtualenv,直接敲:
# Windows系统 python3.6 -m venv my_py36_project_env # Linux或macOS python3.6 -m venv my_py36_project_env
三、激活虚拟环境,开始干活
创建好之后,激活环境就能用啦:
- Windows(cmd命令行):
my_py36_project_env\Scripts\activate.bat
- Windows(PowerShell):
.\my_py36_project_env\Scripts\Activate.ps1
- Linux/macOS:
source my_py36_project_env/bin/activate
激活后命令行前面会出现(my_py36_project_env)的前缀,这时候你敲python和pip都是用的Python3.6,装的包也只会存在这个环境里,完全不会碰你之前的Python2.7环境。
四、几个避免踩坑的小技巧
- 别乱改系统PATH的顺序,不然默认的
python可能会指向错的版本 - 给虚拟环境起个好认的名字,比如
py27_old_project、py36_new_demo,免得搞混 - 装包的时候尽量明确用
pip(给2.7)或者pip3.6(给3.6),别偷懒省掉版本号
补充一句:你之前的Python2.7虚拟环境完全不受影响,该激活激活,该用用,两个环境是彻底隔离的,放心就行~
内容的提问来源于stack exchange,提问作者Daniel
相关产品推荐
相关产品推荐

