首页 > 解决方案 > 为什么我的 lib 文件夹中有两个 python 版本?

问题描述

我刚刚在我的 Debian 4.19.132-1 (Python3.8) 通过

python3 -m venv myapp

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

如果我使用类似的命令

pip install

该模块将安装在myapp/lib/python3.8/site-packages中。但如果我跑

python

将运行的版本是 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

标签: pythondebian

解决方案


听起来有人在 Python 3.7 旁边安装了 Python 3.8,但忘记重命名pip,所以新的优先于系统安装的 3.7。

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

如果该pip版本是/usr/local/bin/pip(而不是,比如说, ) ,/usr/local/bin/pip3.8它将影响3.7 的系统(也取决于您的,但通常优先于)。pip/usr/bin/pipPATH/usr/local/bin/usr/bin

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


推荐阅读