Python中如何在Windows 7下实现Python2和Python3的共存

win7 下 PY2 和 PY3 怎么做到共存,目前工作环境中还有大部分 PY2 的脚本和工具,,但是近年 PY3 的工具,脚本越来越多,怎么在 PY2 能使用的情况下同时支持 PY3 ???


Python中如何在Windows 7下实现Python2和Python3的共存
22 回复

装了 Python3 不就有 Python launcher 了么,py -2,py -3 切换


在Windows 7下让Python 2和Python 3共存,关键是处理好环境变量和启动方式。我常用的方法是分别安装,然后通过修改可执行文件名来区分。

具体步骤:

  1. 分别安装两个版本

    • 先安装Python 2(比如2.7.18),安装时记得勾选“Add python.exe to Path”。
    • 再安装Python 3(比如3.9.x),安装时务必勾选“Add Python 3.x to PATH”,并选择“Customize installation”在高级选项里勾选“Install for all users”和“Precompile standard library”。
  2. 关键修改:重命名可执行文件 安装后,进入Python安装目录(通常是C:\Python27C:\Python39),手动修改可执行文件名:

    • C:\Python27下的python.exe改为python2.exe
    • C:\Python39下的python.exe改为python3.exe
  3. 验证安装 打开新的命令提示符(CMD):

    python2 --version
    python3 --version
    

    应该能分别显示两个版本的号。

为什么这么做? Windows的PATH里后安装的Python会覆盖之前的python命令。通过重命名,我们创建了python2python3两个明确的命令,完全避免了冲突。用哪个版本就敲哪个命令,非常清晰。

虚拟环境使用: 创建虚拟环境时指定解释器路径:

# 为Python 2创建虚拟环境
python2 -m virtualenv venv2

# 为Python 3创建虚拟环境  
python3 -m venv venv3

一句话总结: 分别安装后重命名可执行文件是最直接可靠的共存方案。

把 py2 和 py3 文件夹内的程序文件改个名字,然后分别添加到环境变量中就行了

虚拟环境,virtualenv。

miniconda 很省心

Python 之虚拟环境管理 - 田小计划 - 博客园 : http://www.cnblogs.com/wilber2013/p/4774022.html

看起来 win 上可以用 pywin:
pywin : Windows 上 pyenv 的替代品,但是功能相对 pyenv 比较少
py.exe : Python 3.3 版本以后 Windows 系统自带的启动工具( Python Launcher for Windows ),可以直接在命令行中使用

virtualenv 也是超棒!

Python 笔记十一:在 Mac、Linux 和 Windows 的多版本安装 : https://zhuanlan.zhihu.com/p/26009741

装 python3 时记得勾选那个 launcher。
脚本里第一行写上
#!python2

#!python3

单独运行比如 pip 就写 py -2 -m pip install xxx 或 py -3 -m pip install xxx

新版 python3 安装时都会带个 py.exe ,,双击.py 文件时使用 py.exe 解释执行此.py 文件

然后在.py 文件的第一行写上#!python2 或#!python3,,这样 py.exe 根据第一行的内容选择正确的 python 版本

8 楼正解 你这样子好像 pip 什么的会出问题的

anaconda

很简单的啊,你先都安装,
windows 下
启动用:py -2 或 py -3,需要 pip 的时候:py -2 -m pip install xxx 或 py -3 -m pip install xxx,
嫌弃麻烦就学着使用 anaconda。
linux 下用 pyenv+virtualenv 也行,anaconda 也行。这东西百度下来不是一堆的嘛

anaconda 不错

如果不做科学计算或数据分析的话,不建议 anaconda,,安装包 500 多 M,,装完可能有 3 个 G 了吧,,绝大多数包可能永远都用不到,,

anaconda 的精简版 miniconda 倒可以试试

  1. 安装 anaconda3 作为 py3 且为默认 python,不省那么一点空间,省心
    2. 装一个 py2,然后将其 python.exe 改名 python2.exe ,我现在 py2 很少用了

不建议改名,我的做法是创建个 symlink。

需要 pip install pipenv 啊

#17 这个办法简单好用啊,用了好几年也没出什么问题。现在所有脚本都已经是 py3 了。

我也困在双版本共存问题上。我简单粗暴的用 2 台电脑解决了此问题。
主要是一些方便的工具,很古老很经典(譬如 DeDRM tools ),年久失修了,只支持 2,没法子,搞了个破电脑运行 2 代脚本

用 pyenv ?

回到顶部