【发布时间】:2023-01-24 16:00:51
【问题描述】:
回到 Python3 的时候,我曾经使用:
#!/usr/bin/env python3
但最近,特别是在 Ubuntu 22.04 或 macOS 上,python3 可执行文件并不总是在 PATH 中可用,相反,我应该使用 python 来调用 python3。
有什么可移植的方法来编写 Python3 shebang 吗?
【问题讨论】:
-
等等,Ubuntu 22.04 删除了
python3?我自己还在20.04。我在线检查了依赖项,它似乎仍然存在:ubuntu-desktop -> software-properties-gtk -> python3 -> python3-minimal:/usr/bin/python3;和 ubuntu-server -> software-properties-common -> python3。 -
sudo apt 安装 python-is-python3
-
为了真正的可移植性,通过 pyenv 使用 virtualenv。然后你的系统会执行 pyenv activate my_python3.x.y_env 并且只使用正常的 shebang 运行脚本。使用 virtualenv 和 pyenv 消除了对系统 python 的所有依赖以及包依赖的问题。
-
安装过程会将任何包含单词
python的 shebang 替换为用于实际安装脚本的任何内容。#!python就足够了。你作为作者的代码不应该担心在哪里用户保留他们将用来执行它的 Python 版本。 -
恕我直言,将
python3 -> python符号链接到/usr/bin或类似的东西比处理大量的shebang 更容易。
标签: python portability shebang