python - 为什么 Pip 不能在 Python 3.6.9 虚拟环境中工作?
问题描述
眼镜:
我在 HyperV 中运行 Ubuntu Server 20.04.1 LTS 虚拟机(安装了 GUI)。
我运行它,并看到它与 Python 3.8.5 一起出现:
$ python3 --version
Python 3.8.5
目标:
我需要:
- 在我的虚拟机中安装 Python 3.6.9。
- 转到现有存储库目录,并为 Python 3.6.9 创建一个虚拟环境。
- 在 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 pandas
或pip 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 pandas
或pip install numpy
再次运行,仍然存在相同的错误:
ModuleNotFoundError: No module named 'zlib'
我也试过pip install zlib
了,但它不起作用。
我搜索了多个 Stack Overflow 问题中的类似问题。人们说:
- 降级并安装特定版本的
pip
. - 降级并安装特定版本的
virtualenv
. - 尝试从其他来源安装所需的 Python 版本。
- 尝试从其他来源安装 Pip。
似乎没有任何效果。
我还注意到预装的 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,并且把我的系统弄得一团糟。我不确定。
帮助?
解决方案
推荐阅读
- react-native - 关于 React-Native 设计。使用视图在其他之上
- python - 按属性获取对象列表的字符串
- javascript - 无法通过状态道具,说未定义
- web3 - 将信任钱包与钱包连接并提交交易
- postgresql - 您可以为 UTF-8 指定 6 位 unicode 转义格式吗?
- python - 如果值是一个字符,如何保留引号,如果它是一个数字,则在创建字典时删除引号?
- uitableview - 在使用 Xcode 13 的 iOS 15 sims 上,UITableView scrolltorowatindexpath:atScrollPosition:animated: 导致单元格显示在部分标题下方
- python-3.x - Python & Plotly:将悬停数据添加到密度热图
- c++ - 我的 do while 循环不起作用,我不确定我哪里出错了
- amazon-web-services - 无法从 AWS EC2 实例连接到远程主机