如何检查应该使用哪个python版本
假设我有一堆python脚本,都是以/usr/bin/env python或完全没有shebang。有些脚本需要Python2.7或任何2.x版本,有些脚本需要Python3.x,有些脚本可以在这两个版本上运行—检查python版本本身 我在一个有两个python版本的系统上:python2和python3。通用python程序只是一个符号链接 由于这个python符号链接可以更改,我想编辑脚本中的shebang,以指定这个脚本应该使用python2还是python3。有没有可能通过/program/script来“解析”python脚本并确定它是否应该由python2或python3运行?首先,将python2或python3放在!线在*nix上,当您尝试直接“执行”文件时,操作系统应读取该行并选择适当的二进制文件。在Windows上,省略“usr/bin/env”并使用py.exe运行该文件,该文件现在随PSF CPython安装程序一起安装。示例:tem.py包含如何检查应该使用哪个python版本,python,python-3.x,python-2.x,Python,Python 3.x,Python 2.x,假设我有一堆python脚本,都是以/usr/bin/env python或完全没有shebang。有些脚本需要Python2.7或任何2.x版本,有些脚本需要Python3.x,有些脚本可以在这两个版本上运行—检查python版本本身 我在一个有两个python版本的系统上:python2和python3。通用python程序只是一个符号链接 由于这个python符号链接可以更改,我想编辑脚本中的shebang,以指定这个脚本应该使用python2还是python3。有没有可能通过/progr
#! python2
import sys; print(sys.version)
在命令行
C:\Users\Terry>py /programs/python34/tem.py
2.7.9 (default, Dec 10 2014, 12:28:03) [MSC v.1500 64 bit (AMD64)]
如果我将文件中的2更改为3,则输出将更改为3.4.2。:
。。。python应该只在shebang行中用于
源代码与Python2和Python3兼容
为最终更改的默认版本做准备
Python,python2-only脚本应该更新为源代码
与Python3兼容,或者在shebang行中使用python2
通常,Python2和Python3都可以运行相同的脚本。这意味着,至少对于某些脚本,您必须阅读源代码并自行决定应该使用哪种Python版本
是否有可能/程序/脚本“解析”python脚本和
确定它应该由python2还是python3运行
您可以尝试使用python2和python3二进制文件编译脚本,请尝试:
$ python -mcompileall -h
如果只有python3二进制文件可以编译脚本,那么可以将python3添加到shebang中
还可以帮助自动查找仅python2、仅python3脚本
允许您检测python2或python3标记,例如源Python 2标记中存在print语句或源Python 3标记中存在yield from,但其级别可能太低。您是否尝试在脚本上运行2to3以查看它是否找到任何内容?明确的指示可能是使用print x而不是printx。py2和py3之间还有其他突破性的区别。如果2to3没有抱怨任何事情,那么它是为python3编写的。@kdopen 2to3是官方工具吗?或者这是一个外部程序?应该作为python发行版的一部分安装。但这只是一个粗略的指南。实际上,您需要详细检查脚本,以明确它们是为哪个版本编写的。问题是,如何确定一个特定脚本应该使用哪个版本的python。通过检查是否使用了print或print,例如.yes,但我知道大多数“通用”python脚本仅为2.xb版编写,但我明天将尝试编译: