如何使`python`在Debian系统范围内成为`python3`的别名

a3n*_*3nm 3 debian alias python python3

我的 Debian 测试系统的最新更新删除了 Python 版本 2,我只安装了 Python 3,带有python3. 不再有任何名为python. 这会导致多个脚本失败,包括与 Python 3 兼容的脚本。

我很想知道什么是全局配置pythonpython3.

一种肮脏的解决方案是手动执行类似的操作sudo ln -s /usr/bin/python{3,},但我担心这对未来的 APT 更新(或者如果稍后重新安装 Python 2)可能不健壮。另一种选择是设置别名,但它只适用于我的用户,而不适用于整个系统。

我还注意到,在 Ubuntu 上有一个软件包python-is-python3可以做到这一点,但在 Debian 上没有这样的软件包。

Ste*_*itt 8

如果您想坚持/usr除此之外的所有内容/usr/local都应来自包的规则,我实际上会下载python-is-python3并安装它。它仅提供/usr/bin/python符号链接和所需的文档,并且其包关系不太可能在将来引起问题。

\n

别名不会\xe2\x80\x99t帮助你的脚本\xe2\x80\x99 shebangs,并且鉴于Python包不\xe2\x80\x99t使用替代品,创建你自己的替代品(等)update-alternatives不会\xe2\x80 \x99t 不是一个强大的解决方案。

\n

如果您的脚本使用/usr/bin/env python,您可以手动添加链接/usr/local/bin

\n

无论您决定做什么,从现在开始,Debian 中依赖于 Python 的软件包都需要在其 shebangs 中显式使用python2python3,因此您\xe2\x80\x99不会遇到由官方存储库中的软件包(在 Debian 11 中)引起的问题以及之后的版本,暂时排除不稳定的和实验性的,因为它们仍然有旧的 Python 包,尚未清理\xe2\x80\x99)。

\n


a3n*_*3nm 5

看起来 Debian 现在自己发布了python-is-python3(在撰写本文时在 sid 和测试中),因此问题的前提不再成立,您可以只:sudo apt update && sudo apt install python-is-python3.