Python2与Python3共存的环境配置
2016-05-29 00:13
344 查看
Python中Python 2与Python 3的关系一直很让人头疼,本文主要讲述如何在Windows系统中配置两个版本共存的环境。
随着越来越多的人使用Python 3,很多程序都在考虑移植到Python 3,一个共存的环境非常必要。
而另一方面,许多程序目前却也仅有Python 2的版本,让安装Python 3的用户使用非常不方便,日常使用也需要一个共存的环境。
虽然官方给出了
希望本文能够一定程度上减少Python的版本问题给你带来的困扰。
修改注册表、环境变量
pip及命令行第三方包的使用
但是出于寻找的便利以及写教程的方便,这里还是给出一个个人较为喜欢的安装位置。
如果你修改了Python27的位置,那么你需要在启动
* 找到
* 将其中的所有内容修改为对应的新位置,如果只有一个键,那么只修改一个键
如果你修改了Python35的位置,那么最简单的方法就是卸载重新装在新的位置。
之后我们需要将
* 按照常规的方式修改用户的
* 将
到此你已经可以正常的使用两个版本的Python了。
你也可以通过在文件头部指定Python版本:
做好上述配置以后会发现第三方包的命令行工具不能用了,这是因为我们需要做两件事情:
* 将
* 重装第三方包的命令工具
这样的情况下如果两个版本都有同名的命令行工具会优先使用Python27的命令行工具。
* 如果需要更改默认,将
* 或者直接使用直接路径
LittleCoder
160528
随着越来越多的人使用Python 3,很多程序都在考虑移植到Python 3,一个共存的环境非常必要。
而另一方面,许多程序目前却也仅有Python 2的版本,让安装Python 3的用户使用非常不方便,日常使用也需要一个共存的环境。
虽然官方给出了
py.exe的解决方案,但具体的配置可能还需要一定的普及与指导。
希望本文能够一定程度上减少Python的版本问题给你带来的困扰。
流程介绍
安装两个版本的Python修改注册表、环境变量
pip及命令行第三方包的使用
安装两个版本的Python
简单而言,你可以在任意位置安装这两个版本的Python。但是出于寻找的便利以及写教程的方便,这里还是给出一个个人较为喜欢的安装位置。
C:\ Python\ Launcher\ py.exe Python27\ python.exe Python35\ python.exe
Launcher即Python35在安装时会询问的是否安装的启动器。
修改注册表、环境变量
如果你本身Python27、Python35的位置就是如上面文件树所述,那么可以跳过本节。如果你修改了Python27的位置,那么你需要在启动
regedit(使用Win + R启动),修改注册表:
* 找到
HKEY_CURRENT_USER和
HKEY_LOCAL_MACHINE下的
\SOFTWARE\Python\PythonCore\version\PythonPath键
* 将其中的所有内容修改为对应的新位置,如果只有一个键,那么只修改一个键
如果你修改了Python35的位置,那么最简单的方法就是卸载重新装在新的位置。
之后我们需要将
py.exe所在的目录加入环境变量,使我们可以在命令行使用
py命令。
* 按照常规的方式修改用户的
Path变量,不知道怎么修改的可以看这里:Win7 Win8
* 将
C:\Python\Launcher加入环境变量
到此你已经可以正常的使用两个版本的Python了。
# 使用默认版本的Python py # 使用Python 27 py -2 # 使用Python 35 py -3
你也可以通过在文件头部指定Python版本:
#! python3
pip及命令行第三方包的使用
有通过增加环境变量或者使用批处理文件使用pip的方法,但都会有一些问题,这里推荐直接使用如下命令:
py -m pip install itchat # 指定特定版本的pip py -3 -m pip install itchat
做好上述配置以后会发现第三方包的命令行工具不能用了,这是因为我们需要做两件事情:
* 将
C:\Python\Python27\Scripts和
C:\Python\Python35\Scripts加入
Path环境变量
* 重装第三方包的命令工具
这样的情况下如果两个版本都有同名的命令行工具会优先使用Python27的命令行工具。
* 如果需要更改默认,将
C:\Python\Python35\Scripts放在前即可
* 或者直接使用直接路径
结语
如果有什么问题或者建议,欢迎评论或者与我邮件联系。LittleCoder
160528
相关文章推荐
- 深入浅析python继承问题
- Python - 时间函数
- python 多线程之threading
- Python Queue模块
- idapython import site failed
- Python数据可视化之数据密度分布
- python初学(3)列表(List)应用(待续ing)
- 在Python标准库的json包中,提供了JSONEncoder和JSONDecoder两个类来实现Json字符串和dict类型数据的互相转换。
- LeetCode Largest Number
- 《Python3廖雪峰》datetime转timestamp练习题答案
- Python读取iOS安装包IPA中的信息和图片
- NumPy的详细教程
- python datetime 时间日期处理
- Python Decorator
- 第一次用python写线性回归
- python 使用记录
- Macpro + python + opencv
- Eclipse和PyDev搭建完美Python开发环境
- python web framework
- leetcode 153. Find Minimum in Rotated Sorted Array-二分查找|递归|非递归