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