为什么我的 lib 文件夹中有两个 python 版本?

Why there's two python versions in my lib folder?

我刚刚通过

在我的 Debian 4.19.132-1 (Python3.8) 中安装了一个 python 虚拟环境
python3 -m venv myapp

并注意到以下内容;在我的 lib 文件夹 (myapp/lib) 中有两个子文件夹,python3.8 和 python3.7.

如果我使用像

这样的命令
pip install

模块将安装在myapp/lib/python3.8/site-packages。但是如果我 运行

python

即将 运行ning 的版本是 3.7.3。在这种情况下,我必须使用

python3.8

访问正确的版本。

我的问题是,如果我使用 3.8 安装来创建虚拟环境,那么这个 3.7 版本在那里做什么?有什么方法可以删除它,以免它导致我的程序出现故障?

提前致谢!

编辑:

dpkg -l python3

的结果
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name           Version      Architecture Description
+++-==============-============-============-=========================================================================
ii  python3        3.7.3-1      amd64        interactive high-level object-oriented language (default python3 version)

type -all python3

的结果
python3 is /usr/bin/python3

ls -l

的相关结果
drwxr-xr-x 18 gabriel_fernandes google-sudoers        4096 Oct  7 14:14 Python-3.8.2
-rw-r--r--  1 root              root              17869888 Oct  7 13:06 Python-3.8.2.tar.xz

听起来有人安装了 Python 3.8 和 Python 3.7 但忘记重命名 pip 所以新的优先于 system-installed 3.7。

更详细地说,开箱即用的 Debian 在 /usr/bin/python3 中提供了 Python 3.7,但是对于 Python 开发,您还希望拥有最新最好的版本,有人似乎从源代码安装,可能是 /usr/local/bin/python3.8.

如果 pip 版本是 /usr/local/bin/pip(而不是 /usr/local/bin/pip3.8),它将在 /usr/bin/pip 中隐藏系统 pip,这是为了3.7(也取决于您的 PATH,但通常 /usr/local/bin 优先于 /usr/bin)。

我们无法确定为什么这样做,但 pip 的命名(或者更确切地说,未能重命名新版本,因此它不会隐藏)似乎是一个错误.在理智的组织中,你会有一位主管或导师可以告诉你你应该用这台计算机做什么,如果这是组织系统地做的事情,可能会指出一些文档。