首页 > 解决方案 > 为什么 Pip 不能在 Python 3.6.9 虚拟环境中工作?

问题描述

眼镜:

我在 HyperV 中运行 Ubuntu Server 20.04.1 LTS 虚拟机(安装了 GUI)。

我运行它,并看到它与 Python 3.8.5 一起出现:

$ python3 --version
Python 3.8.5

目标:

我需要:

  1. 在我的虚拟机中安装 Python 3.6.9。
  2. 转到现有存储库目录,并为 Python 3.6.9 创建一个虚拟环境。
  3. 在 Python 3.6.9 虚拟环境中安装以下包:

在此处输入图像描述

执行:

首先,我从https://www.python.org/downloads/release/python-369/下载了 Python 3.6.9 源文件,并将它们解压缩到我的 VM 中的一个目录中。

然后,我移至所述目录,并运行以下命令:

$ time ./configure
$ time make                        
$ time sudo make install
$ time make clean

然后,我运行这些命令,发现 Python 3.6.9 现在已安装。

$ python3 --version
Python 3.8.5
$ python3.6 --version                                                                                                 
Python 3.6.9

然后我安装pip了它的包virtualenv。如果我运行这些命令,我​​会得到:

$ pip --version
pip 21.0.1 from /home/ubuntu/.local/lib/python3.8/site-packages/pip (python 3.8)
$ virtualenv --version
virtualenv 20.4.0 from /usr/local/lib/python3.8/dist-packages/virtualenv/__init__.py

我将在我的桌面的一个新目录上测试它。一旦我确定它可以工作,我会在我需要它的存储库中进行。

cd到我的桌面。然后我运行它,查看我的 VM 中 Python 3.6.9 的安装位置:

$ which python3.6
/usr/local/bin/python3.6

然后我运行:

$ virtualenv -p /usr/local/bin/python3.6 testenv3.6

testenv3.6在我的桌面中成功创建了一个新目录。我cd到它并运行:

$ source ./bin/activate
(testenv3.6) $ python3 --version
Python 3.6.9

一切似乎都很好。然后我尝试运行pip install pandas,并得到了这个错误:

from pip._vendor import html5lib, requests
ImportError: cannot import name requests

当我尝试安装numpy或任何其他软件包时,也会发生这种情况。似乎与此类似:ImportError: cannot import name requests

所以我去了导致错误的文件。我不记得它到底在哪里,但我知道我从这里改变了它:

from pip._vendor import html5lib, requests

对此:

from pip._vendor import html5lib
import requests

然后我尝试运行pip install pandaspip install numpy再次运行,我得到:

ModuleNotFoundError: No module named 'zlib'

我再次在 Stack Overflow 上搜索,发现:没有名为 zlib 的模块

根据该 URL 的回答,我尝试运行sudo apt-get install zlib1g-dev. 我明白了:

zlib1g-dev is already the newest version (1:1.2.11.dfsg-2ubuntu1.2).
The following packages were automatically installed and are no longer required:
  libpython3.6-minimal libpython3.6-stdlib python3.6-minimal
Use 'sudo apt autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 104 not upgraded.

如果我尝试运行pip install pandaspip install numpy再次运行,仍然存在相同的错误:

ModuleNotFoundError: No module named 'zlib'

我也试过pip install zlib了,但它不起作用。

我搜索了多个 Stack Overflow 问题中的类似问题。人们说:

似乎没有任何效果。

我还注意到预装的 Python 版本是 . /bin/,而我安装的 python 3.6.9 是/usr/local/bin/. 所以我什至尝试将 Python 3.6.9 文件移动到其他预安装的 Python 版本旁边。所以之前,我得到了这个:

$ which python3.6
/usr/local/bin/python3.6

现在,我明白了:

$ which python3.6
/bin/python3.6

它仍然没有解决它。

现在,经过我所有的尝试,我可能已经在多个地方安装了 Python,并且把我的系统弄得一团糟。我不确定。

帮助?

标签: pythonubuntupipvirtualenvvirtual-environment

解决方案


推荐阅读