首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Ubuntu20.04中的python3 python 3包-它是什么?它实际上是做什么的?

在Ubuntu20.04中的python3 python 3包-它是什么?它实际上是做什么的?
EN

Ask Ubuntu用户
提问于 2020-12-02 02:17:00
回答 2查看 106K关注 0票数 93

使用Ubuntu18.04已经有几年了,并且读到Python2已经从Ubuntu20.04中删除了,我期待着使用命令pythonpip,而不是python3pip3。所以今天我第一次尝试了Ubuntu20.04,并发现:

代码语言:javascript
复制
$ python --version

Command 'python' not found

$ python3 --version
Python 3.8.5

我很惊讶,在深入研究之后,我进一步发现了关于包python-is-python3的以下内容:

https://packages.ubuntu.com/focal/python-is-python3

https://launchpad.net/ubuntu/focal/+package/python-is-python3

如何使‘Python’程序命令执行Python 3?

这三个链接中的中间部分是最具描述性的,但没有一个特别清楚的是,如果要在Ubuntu20.04安装上运行python-is-python3,那么sudo apt-get install python-is-python3是/做什么的,以及整个分支的范围。

下面是一些关于python-is-python3的问题:

  1. python-is-python3是否是Ubuntu/Canonical专有的?如果是这样的话,其他Linux发行版是否也使用python-is-python3,或者其他一些发行版是否具有类似的等效性?
  2. 我想,如果我要从命令提示符运行python-is-python3,那么我可以使用命令python而不是python3。首先,有人能证实这一点吗?第二,对于pip,也就是pip,而不是pip3,也是这样吗?
  3. 上面的launchpad.net链接提到了符号链接的创建。python-is-python3真的只是创建一个单一的符号链接吗?为这样一个赤裸的目的引进一套方案似乎很奇怪。另外,如果这个包随后被卸载(i.e. sudo apt --purge remove python-is-python3),这是否删除符号链接?
  4. 现在还有什么常用的Python 2包存在吗?我想不出有什么现成的。
  5. 有没有人运行过python-is-python3,后来又因为没有提前意识到的原因而后悔这么做?
  6. 运行python-is-python3的好处似乎是不必在python-is-python3命令的末尾添加3,但缺点是您将有一个非标准的Ubuntu设置,这是否是对D36好处/缺点的一个公正的总结?
EN

回答 2

Ask Ubuntu用户

回答已采纳

发布于 2020-12-02 11:36:24

作为您链接到的包描述中说

在Ubuntu中,所有python包都使用显式的python3或python2解释器,并且根本不使用不版本的/usr/bin/python .任何包都不能声明此包的依赖项。

因此,所有正式的Ubuntu包都将显式地依赖于"python2“或"python3",并调用适当的命令。默认的"python“命令是故意未定义的,因此任何引用它的脚本都必须更新为明确依赖于某个版本或另一个版本。

但是,用户可能有依赖于可用的"python“命令的代码,并且知道他们可以安全地将其指向整个系统的某个版本。python-is-python3包(和它的对应方,python-is-python2)是为此目的建立符号链接的一种方便的方法。

python-is-python 3真的只是创建了一个符号链接吗?为这样一个赤裸的目的引进一套方案似乎很奇怪。

Linux发行版是由大量简单组件组成的极其复杂的系统。包管理人员的力量在于他们能够以统一的方式灵活地做这样简单的事情。例如,服务器安装脚本可能有一个需要安装应用程序的apt包的长列表,并且可以简单地将python-is-python3包含在该列表中。为此目的发送包要比让用户指南解释如何手动管理符号链接要简单得多。

同样适用于pip,即pip而不是pip3吗?

显然不是--根据这个发射台错误的说法,python3包会自动将pip指向pip3

如果打开包的.deb文件(我使用了7-Zip),您可以看到,除了一些文档之外,它实际上只包含一个指向/usr/bin/python3的符号链接,将安装在/usr/bin/python上。

票数 68
EN

Ask Ubuntu用户

发布于 2020-12-02 02:24:25

在Ubuntu中,所有python包都使用显式python3或python2解释器,根本不使用不版本化的/usr/bin/python。一些第三方代码现在主要是基于python3的,但可能使用/usr/bin/python

python3 python 3是一个方便的包,它提供了一个符号链接,将/usr/bin/python解释器指向当前的默认python3。它可以提高与其他现代系统的兼容性,同时打破一些过时的或第三方的软件。

python-is-python 3取代: python,python-is-python 2。

我在Ubuntu20.04中将python-is-python 3作为一个方便包安装,但后来在python2.7作为另一个包的依赖项自动安装之后,我卸载了它。

票数 24
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1296790

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档