如何在 Windows 上管理多个 Python 版本

安装 Python 2.6.6

1、官网下载安装包安装:https://www.python.org/downloads/windows/

2、修改 python.exe、pythonw.exepython2.exe、pythonw2.exe,并将安装路径添加到系统环境变量

3、下载 get-pip.py ,打开网站 https://bootstrap.pypa.io,选择 2.6 版本下载,并将其放在 C:Python26 目录中

4、命令行执行:python2 get-pip.py

虚拟环境安装

# 虚拟环境
pip2 install virtualenv		# 现在还没有安装 Python2.7 和 3.6 可以使用 pip2,后面的话要用 pip2.6
# pip2.6 install virtualenv

virtualenv -p C:Python26python2.exe tg2env

使用 virtualenv 安装虚拟环境后,记得将 sitecustomize.py 添加到 Lib/site-packages/ 中,代码如下:

import sys 
reload(sys)
sys.setdefaultencoding('utf8') 

否则会出现 UnicodeEncodeError: 'ascii' codec can't encode character u'u258e' in position 8: ordinal not in range(128) 错误

注意:2.6 版本安装后没有 Scripts 目录和 pip,安装 get-pip.py 即可实现;2.6 版本也没有 virtualenvwrapper-win;安装完 pip 后记得添加系统环境变量

安装 Python2.7 和 Python3.6.8

1、同样地在官网下载安装包后,自行安装,这里我选择安装路径为:

# 2.7 默认安装路径为 C:Python27
C:Python27
C:Python36

安装完后将 2.7 的 python.exeScripts 路径添加到系统环境变量,3.6 会自动添加。

2、修改 python.exe 和 pip.exe 名称:

  • C:Python27 目录下的 python.exepythonw.exe 改为 python27.exepythonw27.exe
  • C:Python36 目录下的 python.exepythonw.exe 改为 python36.exepythonw36.exe

3、安装 pip

python36 -m pip install --upgrade pip --force-reinstall
python27 -m pip install --upgrade pip --force-reinstall

至此三个 Python 环境都以安装完毕,以下是检查 python 和 pip 版本:

C:Usershj>python2 -V
Python 2.6.6

C:Usershj>python27 -V
Python 2.7.18

C:Usershj>python36 -V
Python 3.6.8

C:Usershj>pip2.6 -V
pip 9.0.3 from c:python26libsite-packages (python 2.6)

C:Usershj>pip2 -V
pip 20.2 from c:python27libsite-packagespip (python 2.7)

C:Usershj>pip3 -V
pip 20.2 from c:python36libsite-packagespip (python 3.6)

踩坑

切记勿将 Python2.6python.exe 和 pythonw.exe 改为:python26.exe 和 pythonw26.exe,否则报:Fatal error in launcher: Unable to create process using '"'

其他命令

where pip

给 Python2.7 和 3.6 安装虚拟环境

前提:这里没有将 Python2Python3 的虚拟环境区分,而是放在同一目录,如果想放在不同的目录,使用不同的命令创建,可参考以下两篇文章

这里只要安装一次 virtualenvwrapper-win 即可,以 Py3 为例

1、安装 pip3 install virtualenvwrapper-win

2、添加系统环境变量,在系统环境变量新增

WORKON_HOME	# 变量名
F:Envs		# 存放虚拟环境

3、创建 Py2、Py3 虚拟环境:

mkvirtualenv -p C:Python27python27.exe 虚拟环境名称		# 创建 Py2
mkvirtualenv -p C:Python36python36.exe 虚拟环境名称		# 创建 Py3

4、其他命令:

workon 虚拟环境名称	# 进入虚拟环境
deactivate		# 退出虚拟环境
rmvirtualenv 虚拟环境名称		# 删除虚拟环境

踩坑

若运行时出现以下情况:

(ttt) C:UsershjDesktop	tt>pip -V
Fatal error in launcher: Unable to create process using '"F:python venv	ttScriptspython.exe"  "F:python venv	ttScriptspip.exe" -V': ???????????

比如我创建的虚拟环境地址为:F:python venv ttScripts,其中 python 的可执行文件名称为:python36.exe、pythonw36.exe,使用时会报错,因此将其修改为:python.exe、pythonw.exe

workon ttt	# 切换到虚拟环境
deactivate	# 退出虚拟环境

# 在虚拟环境使用 python 和 pip,通过上述修改 python 可执行文件后可直接使用以下命令
C:UsershjDesktop	tt>workon ttt
(ttt) C:UsershjDesktop	tt>python -V
Python 3.6.8

(ttt) C:UsershjDesktop	tt>pip -V
pip 20.2 from F:python venv	ttlibsite-packagespip (python 3.6)

参考文章

使用Anaconda管理多个版本的Python环境

conda --version
conda info --envs

# 创建 Python27 的虚拟环境
conda create --name python27 python=2.7		# python27 为虚拟环境名称
activate python27	# 进入虚拟环境
deactivate python27	# 退出虚拟环境

conda config ?	# 查看可以使用的命令
conda config --show	# 查看 channels 等信息
conda info -e # 查看已有的环境
conda remove -n env_name --all	# 删除虚拟环境
conda list	# 查看已经安装的包
conda list -n python34	# 查看指定环境已安装的包
conda search numpy	# 查看 package 信息

# 给 conda 添加镜像地址
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn
conda config --set show_channel_urls yes
conda config --remove channels defaults

其他方法安装 Python2.6

安装 Scripts

1、首先官网上下载安装包:https://www.python.org/downloads/windows/,目前最高只有 Python2.6.6 版本了可下载了。

2、下载安装成功后,将 Python.exe 和 pythonw.exe 分别修改为 pythonw.exe、pythonw2.exe,并将安装路径添加到系统环境变量中。

3、但是发现没有Scripts 目录,下载 ez_setup.py 进行安装,执行 python2 ez_setup.py,报错:urllib2.HTTPError: HTTP Error 403: SSL is required

下载地址:https://pypi.org/project/ez_setup/#files

4、手动下载 distribute-0.6.28.tar.gz

下载地址:http://pypi.python.org/packages/source/d/distribute/distribute-0.6.28.tar.gz

5、切换到 distribute/ 目录中,执行 python2 setup.py install,至此 Script 安装完成。

安装 pip

下载 get-pip.py,执行:python2 get-pip.py

下载地址:https://bootstrap.pypa.io/2.6/get-pip.py

注意:记得把 Scripts 添加到系统环境变量!

踩坑

1、若中途出现:UnicodeEncodeError: 'ascii' codec can't encode character u'u258e' in position 8: ordinal not in range(128) 错误

C:Python26Libsite-packages 目录中新建 sitecustomize.py 文件,内容如下:

import sys 
reload(sys)
sys.setdefaultencoding('utf8') 

保存退出,最后再重启解释器。

参考文章

参考文章

原文地址:https://www.cnblogs.com/midworld/p/13423043.html