跳到主要内容

Python指定版本运行

前言

在用一些开源的 python 脚本的时候,而原作者是用python2.7写的,但学过 python 的应该会知道 python 每个版本之间存在兼容性,python2 的代码用 python3 是会可能运行不了的,一些现有的框架在 python3.6 可以运行而 python3.7 就报错。通常这时候我想执行 python2 代码的解决办法:

  • 安装 python2,并且就算安装了还要重新配置环境变量这些(麻烦)
  • 通过虚拟环境,来安装 python2,在虚拟环境中运行 python2 代码(麻烦)
  • python3(>=3.3)其实自带了 python2 的代码,就没必要像上面那么麻烦

具体实现步骤

其实在安装 Python3(>=3.3)时,Python 的安装包实际上在系统中安装了一个启动器py.exe,默认放置在文件夹C:\Windows\下面。这个启动器允许我们指定使用 Python2 还是 Python3 来运行代码。

image-20200912224056257

例如:

运行 python2

py -2 demo.py

image-20200912225223752

运行 python3

py -3 demo.py

image-20200912225250066

只要把命令行的 python 的改成 py -2 就能以 python2 来执行。 但是,每次运行都要加入参数-2 和-3 还是比较麻烦,于是所以 py.exe 这个启动器允许你在代码中加入说明,表明这个文件应该是由 python2 或 3 来解释运行。只需要在代码文件的最开始加入一行,一定要放到文件第一行,编码可以放在第二行,如

#!py -2
# -*- coding: utf-8 -*-

...code

pip 安装

python2 下安装

py -2 -m pip install XXXX

python3 下安装

py -3 -m pip install XXXX