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

为什么会有';我的lib文件夹中有两个python版本吗?,python,debian,Python,Debian,我刚刚在我的Debian 4.19.132-1(Python3.8)中通过 注意到,;在我的lib文件夹(myapp/lib)中有两个子文件夹,python3.8和python3.7 如果我使用像这样的命令 pip install 该模块将安装在myapp/lib/python3.8/site软件包中。但如果我跑 python 将要运行的版本是3.7.3。在这种情况下,我必须使用 python3.8 以访问正确的版本 我的问题是,如果我使用我的3.8安装来创建一个虚拟环境,那么这个3.7版

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

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

如果我使用像这样的命令

pip install
该模块将安装在myapp/lib/python3.8/site软件包中。但如果我跑

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

python3.8
以访问正确的版本

我的问题是,如果我使用我的3.8安装来创建一个虚拟环境,那么这个3.7版本在那里做什么?有什么办法可以删除它,不让它在我的程序中引起故障

提前谢谢

编辑:

dpkg-l蟒蛇3的结果

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)
python3 is /usr/bin/python3
类型的结果-所有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)
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

听起来像是有人在安装Python3.7的同时安装了Python3.8,但忘了重命名
pip
,因此新的版本优先于系统安装的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版本(也取决于
路径,但通常
/usr/local/bin
优先于


我们无法确定为什么会这样做,但似乎命名
pip
(或者更确切地说,未能重命名新版本以避免阴影)是一个错误。在健全的组织中,你会有一位主管或导师,他可以告诉你如何使用这台电脑,如果这是组织系统性的工作,也许可以指向一些文档。

以前使用其他版本的python创建的venv中是否存在任何可能性
myapp
?您是否首先安装了两个python版本,如果是,如何安装,系统提供了哪一个?换句话说,请在该命令打印的路径上包含来自
dpkg-l python3
type-all python3
ls-l
的输出。首先。@tripleee感谢您的快速响应!只是编辑了这篇文章来思考结果。我不知道系统配置是如何进行的,因为我预先配置了机器。@tdelaney不是真正的朋友!这是该机器首次使用venvs;另一个用户只是在root安装时调用了这些方法,看起来不像
/usr/bin/pyhon3
ls-l
,但它确实表明有人以某种方式单独安装了3.8。我猜你的
/usr/bin/python3
仍然是3.7,而3.8类似于
/opt/python3/bin/python3
(或者可能是
/usr/local/bin/python3
;但是它应该在你的
路径上,并按t
type-all
列出)。这是yoqr主目录的列表吗?你能和为你初始化这台机器的人谈谈吗?除了
dpkg
,您还有像Anaconda这样的包管理器吗?非常感谢您的指导!我不知道Debian有一个现成的python版本,我想这就解释了这个问题,因为我在我的主目录中找不到任何其他安装。是否有一种简单的方法来更改系统内的pip路径?再次感谢!同样,没有细节,很难说具体的事情。可能吧。如果它在
/usr/local/bin/pip
中,那么可能会将其重命名为
/usr/local/bin/pip3.8
,但这整个处理过程使用两个单独的python有点难以管理。也许可以研究一下
pipenv
,以便将每个Python版本及其支持实用程序和库分开。