Windows 下 Python2 与 Python3 共存的环境配置

2016-06-01 21:42:19 +08:00
 NxnXgpuPSfsIT

Python 中 Python 2 与 Python 3 的关系一直很让人头疼,本文主要讲述如何在 Windows 系统中配置两个版本共存的环境。

随着越来越多的人使用 Python 3 ,很多程序都在考虑移植到 Python 3 ,一个共存的环境非常必要。

而另一方面,许多程序目前却也仅有 Python 2 的版本,让安装 Python 3 的用户使用非常不方便,日常使用也需要一个共存的环境。

虽然官方给出了py.exe的解决方案,但具体的配置可能还需要一定的普及与指导。

希望本文能够一定程度上减少 Python 的版本问题给你带来的困扰。

流程介绍

安装两个版本的 Python

简单而言,你可以在任意位置安装这两个版本的 Python 。

但是出于寻找的便利以及写教程的方便,这里还是给出一个个人较为喜欢的安装位置。

C:\
    Python\
        Launcher\
            py.exe
        Python27\
            python.exe
        Python35\
            python.exe

Launcher即 Python35 在安装时会询问的是否安装的启动器。

修改注册表、环境变量

如果你本身 Python27 、 Python35 的位置就是如上面文件树所述,那么可以跳过本节。

如果你修改了 Python27 的位置,那么你需要在启动regedit(使用 Win + R 启动),修改注册表:

如果你修改了 Python35 的位置,那么最简单的方法就是卸载重新装在新的位置。

之后我们需要将py.exe所在的目录加入环境变量,使我们可以在命令行使用py命令。

到此你已经可以正常的使用两个版本的 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

做好上述配置以后会发现第三方包的命令行工具不能用了,这是因为我们需要做两件事情:

这样的情况下如果两个版本都有同名的命令行工具会优先使用 Python27 的命令行工具。

结语

如果有什么问题或者建议,欢迎评论或者与我邮件联系。

LittleCoder

160528

9195 次点击
所在节点    Python
45 条回复
NxnXgpuPSfsIT
2016-06-02 12:06:45 +08:00
@raptor 对的,配 windows 环境一直很让人头疼
caixiexin
2016-06-02 12:06:52 +08:00
记得 virtualenv win 上也能用不是?
NxnXgpuPSfsIT
2016-06-02 12:09:38 +08:00
@littleshy 我本来想提一下这个方法,只使用 python 和 python3 这两个命令是没问题的,配置非常简单
fy
2016-06-02 12:14:30 +08:00
并没有这么麻烦,直接将 py2 的 python.exe 改为 python2.exe 或者将 3 的改为 python3.exe
pip 也处理一下成为 pip2.exe 和 pip3.exe
就可以了
ak47t
2016-06-02 12:24:43 +08:00
改来改去好烦啊 还是 virtualenv 好用 完全不用改 pip 都是单独的 python2 python3 自由切换
NxnXgpuPSfsIT
2016-06-02 14:05:36 +08:00
@caixiexin 可以用的, http://www.cnblogs.com/chaosimple/p/4475958.html
有人写过教程,我在这里就贴链接好了
如果不需要使用 Shebang ,愿意装 virtualenv 的, virtualenv 是个不错的选择
xiahei
2016-06-02 14:46:10 +08:00
@NxnXgpuPSfsIT 我想说的是: Windows 下这么麻烦,为什么不换 Linux ?而不是说 Linux 下的教程, hhhhh.😄
flipped123
2016-06-02 17:44:36 +08:00
xiamx
2016-06-02 21:41:42 +08:00
@NxnXgpuPSfsIT 因为你给出的解决方案麻烦啊。不仅配置时需要改注册表,切换版本时还要每次都改环境变量,完全是在坑用户。你发了贴提出个方案,不就是想让大家 peer review 你嘛,不然留着自己用呗
NxnXgpuPSfsIT
2016-06-02 23:59:27 +08:00
@xiamx 哟,不用英文了嘛。
你所说的 peer review 是指你的回答“ why can't you just use anaconda?”么?真是长见识了。
另,每次切换版本不需要改环境变量且有三大优点(文中已有),如果你想要和我交流一下 anaconda 和 py.exe 的优劣,请起码试用一下。
欢迎你给出 anaconda 的教程,以及优势,我一定第一时间给你点赞。
你比较一下你的回复和一楼的几个回复,希望你可以学习一下什么叫 peer review 。
还是那句话,旨在提供多一种可能的解决方案,不想知道右上角红叉。
如果你想要抬杠,那抱歉了,我宁愿不回复,这样的回复对别人毫无帮助。
xiamx
2016-06-03 06:36:00 +08:00
OP 原帖中提出的是一个 Windows 上安装多个 Python 版本的解决方案。但是文中完全忽略了已有的解决方案——对已有的产品, Winpython , anaconda 等绝口不提,也没说 anaconda 等有什么问题需要用 py.exe 解决。所以我问 why can't you just use anaconda 到底触动到了 @NxnXgpuPSfsIT 哪根神经?
masterjason
2016-06-03 08:22:19 +08:00
@xiamx 我挺理解的,我小学的时候研究出鸡兔同笼用直接计算怎么做别人告诉我能用方程解我也是一脸我不听我不听我不听我是对的
NxnXgpuPSfsIT
2016-06-03 08:27:17 +08:00
@xiamx 哟,不说 peer review 了嘛。
关于要不要回复你的抬杠和越来越奇怪的观点,真是触动我神经到头痛呢。
以后好好想一想再把观点拿出来好不好?这次的观点都是些什么啊。
原来你以为写教程是要分享其他各种解决方案的缺点哦。林子大了呀,真是。
那我写怎么扩展个人微信号,是不是还要列举 Fiddle 的各种缺点: https://www.v2ex.com/t/280429
那我写 Evernote API 的教程,是不是还要列举 http 直接抓包的各种缺点: https://www.v2ex.com/t/279339
我只想知道更好的解决方案,你有,提优点出来。抬杠?右上角红叉。
写篇文章分享下你的 anaconda 呀,我二话不说给你道歉,承认你是个能给论坛创造有用东西的人。
另,你把页面划到文末你就能看见我写的:“ ActivePython , Anaconda , Canopy , WinPython , virtualenv ,甚至改 python.exe 名字都是可用的解决方案。”,真是无奈。
个人建议你点个红叉出去,写篇分享,让我来点赞。当然,只是个人建议。
NxnXgpuPSfsIT
2016-06-03 08:30:21 +08:00
@masterjason 就默认方程解好了,所以我在引导他分享一下他方程解的优点和解法呀。
xiamx
2016-06-03 08:59:31 +08:00
@NxnXgpuPSfsIT 你文末的 APPEND 在我写 why can't you just use anaconda 之前,你自己看时间
xiamx
2016-06-03 09:04:24 +08:00
@masterjason 所以说嘛,还是楼主开心就好
NxnXgpuPSfsIT
2016-06-03 09:11:07 +08:00
@xiamx 哟,不说你的写其他解决方案缺点的教程了嘛。
那我的 APPEND 是在你所谓“本文绝口不提其他方案”的回复之前还是回复之后呀?
毫无意义的抓住他人已经修改的问题,是为抬杠。
我旨在“虽然官方给出了 py.exe 的解决方案,但具体的配置可能还需要一定的普及与指导。”
发现论坛中对其他解决方案感兴趣就立即加上了其他版本的 APPEND 。
没预料这点,你说我错了,我认,我道歉,所以我第一时间加了 APPEND 。
我自认已经尽到了一个资料分享者应尽的义务。
资料分享者也是人,不是神,他们只能即时修正,不能回到过去。
还是那句话,我希望你能给出 anaconda 的分享,话放在这里,你写,我就去点赞。
zonzin
2016-06-03 11:27:28 +08:00
CENTOS6.X 自带 2.6 想升级到 2.7 ?折腾不死你。
NxnXgpuPSfsIT
2016-06-03 12:08:57 +08:00
@zonzin 你回错主题了吧,这里是 windows 的 python 配置
xiamx
2016-06-05 11:35:45 +08:00
1. 安装 Anaconda 3
2. conda create -n python2 python=2.7 anaconda
3. activate python2
新手友好,不改注册表

@NxnXgpuPSfsIT 是不会用 Google 还是看不懂英文,都被人分享过好几年的东西还要再重新发个帖?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/282819

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX