是否可以检查python源代码是否只为一个版本(python2或python3)编写

2024-05-20 14:10:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我做了一些源代码分析,需要知道源代码是否只为一个版本(python2或python3)编写。理想情况下,不需要同时启动运行时和检查是否引发异常的脚本。我不想检查哪些运行时是像here那样安装的。你知道吗

也许我正在寻找某种linter,它测试典型的python2代码,比如

print "hello"

而不是

^{2}$

这是我的问题我读了这样一个文件例如:

for i in range(10):
    print(True) if (i % 2 == 1) else print(False)

它在python3下运行良好,并对python2产生错误

print(True) if (i % 2 == 1) else print(False)
                                         ^
SyntaxError: invalid syntax

可能与compiler一起使用,但它被标记为已弃用

有没有解决这个问题的想法,或者任何已知的linter告诉我代码是python2还是python3?或者用两个运行时运行文件是我唯一的选择?你知道吗

谢谢


Tags: 文件代码版本脚本falsetrueif源代码
1条回答
网友
1楼 · 发布于 2024-05-20 14:10:20

您无法可靠地检测到代码仅为Python3编写。你知道吗

如果代码使用print作为语句,则可以确定它只适用于python2。类似地,使用except Exception, target:的代码只能在python2上运行。你知道吗

但是可以编写polyglotPython代码;通过使用^{} statements在python2和python3上运行的代码;from __future__ import print_function将允许您在python2上使用print()函数。你知道吗

最好的办法是通过major Python 3 syntax changes,创建一系列启发式来对Python版本进行有根据的猜测。你知道吗

Python的Future项目有一个helpful cheatsheet,在这里可能也有帮助。你知道吗

相关问题 更多 >