我通常使用apt包管理器安装早期版本(3.11.2),并从源手动安装更高版本(3.12)。当我像这样执行 python 脚本时:
./python_script.py
Run Code Online (Sandbox Code Playgroud)
该脚本使用较早的版本而不是较新的版本。出于可移植性的原因,我想将默认的 shebang 行#!/usr/bin/env python3单独保留在脚本的开头。
这是一个示例测试脚本。
#!/usr/bin/env python3
import sys
def main():
print(sys.version)
main()
Run Code Online (Sandbox Code Playgroud)
编辑:通过上述配置,我认为目前最快的解决方案(可能不是最好的,因为未来的后果,请参阅下面社区的详细解释的答案和评论)是更改 / 中 python3 符号链接的目标/usr/local/bin/python3.12的/usr/local/bin/python3.12 的替代品,其中存储了我的 python3.12 二进制文件。
编辑2:如第二个屏幕截图所示,./myscript.py通过验证该目录位于环境变量中的目录/usr/local/bin之前并将二进制文件重命名为./usr/binPATHpython3.12/usr/local/bin/python3