python - 为什么我的 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
解决方案
听起来有人在 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/pip
PATH
/usr/local/bin
/usr/bin
我们无法确定为什么要这样做,但似乎命名pip
(或者更确切地说,未能重命名新版本以使其不受影响)是一个错误。在理智的组织中,你会有一个主管或导师,他可以告诉你应该用这台计算机做什么,如果这是组织系统地做的事情,可能会指出一些文档。
推荐阅读
- sql - 如何创建一个 sql 来获取 INFORMIX 数据库中作为 blob 的“文本”信息
- c++ - 在运行时设置随机分布类成员的最小和最大界限?
- node.js - elasticsearch js更新索引
- scala - Key-Value RDD:为什么相同的重复值元组?(斯卡拉)
- vue.js - 如何在 vue-router 中同时保护 '/login' 或 '/login/' 和 '/dashboard' 或 '/dashboard/'
- r - 当执行顺序很重要时,如何加快 for 循环?
- c++11 - 模板的模板特化
- python - 如何从 CVS 文件的数据列中删除最后一个字符?
- python - 使用 Python 读取具有给定结构定界的文本文件
- python - 我应该如何编写带有数字扩展名的函数?