有没有标准的方法来确保python脚本由python2而不是python3解释?在我的发行版上,我可以使用#/usr/bin/env python2作为shebang,但似乎并非所有发行版都发布"python2".我可以显式地调用python的特定版本(如2.6),但这将排除没有该版本的人.

在我看来,当发行版开始将python3作为默认的python解释器时,这将越来越成为一个问题.

推荐答案

在一个非常长的过渡期内,这是一个有点混乱的问题.不幸的是,除了让Python脚本本身在启动后进行判断之外,没有什么简单、跨平台的方法来保证调用的是哪个Python版本.许多(如果不是大多数的话)发布Python3的发行版都在确保generic python命令在默认情况下被别名化为最新的Python2版本,而python3被别名化为最新的Python3版本.应该鼓励那些不这样做的发行.但不能保证用户不会覆盖它.我认为在可预见的future ,最好的做法是包装商、分销商和用户假设python指的是Python 2,并在必要时在脚本中构建运行时判断.

Python-3.x相关问答推荐

Django 5.0.2和django_rest_framework

在numpy. linalg的qr之后使用scipy. integrate中的solve_ivp时出现了一个奇怪的错误

DuckDB:带有嵌套对象的星形表达式

Python-Django 设置 Pandas DataFrame 的多索引不会分组/合并最后一个索引

在python内的powershell中转义$_

在 pytest 中,如何测试 sys.exit('some error message')?

attrs 将 list[str] 转换为 list[float]

获取字符串中的两个工作日之间的差异

如何使用 regex sub 根据列表中的变量替换字符

根据另一列值对多个数据框列进行分组

两个字符串之间的正则表达式匹配?

无法在 macOS 上的 Anaconda3 python3.6 上安装 OpenCV3

如何禁用 pylint 禁止自用警告?

为什么Pandas会在 NaN 上合并?

如何通过python打开文件

numpy.ndarray 与 pandas.DataFrame

Anaconda 中的依赖项和包冲突?

在 ubuntu 20.04 中安装 libpq-dev 时出现问题

python setup.py egg_info mysqlclient

map 对象不是 JSON 可序列化的