Python 3.6.9虚拟环境中Pip无法正常工作的问题求助
解决Python 3.6.9虚拟环境中pip安装包的依赖问题
你遇到的核心问题是编译Python 3.6.9时缺少必要依赖导致zlib模块未被构建,加上跨版本virtualenv创建环境引发的pip兼容性问题。下面是一步步的修复方案:
1. 重新编译Python 3.6.9,确保依赖完整
之前编译时可能没装全所有编译依赖,导致zlib等核心模块没有被包含进Python 3.6.9中。先安装所有必要的编译工具和依赖:
sudo apt-get update sudo apt-get install -y build-essential libssl-dev libffi-dev libsqlite3-dev libbz2-dev libreadline-dev libgdbm-dev liblzma-dev zlib1g-dev
然后回到Python 3.6.9的源码目录,重新编译安装(用altinstall避免覆盖系统默认的Python 3.8):
cd /path/to/your/python3.6.9/source make clean ./configure --enable-optimizations --with-zlib=/usr/include make -j$(nproc) # 用多线程加速编译 sudo make altinstall
2. 用Python 3.6自带的工具创建虚拟环境
之前用Python 3.8的virtualenv创建3.6的环境,容易出现pip版本不兼容的问题。建议直接用Python 3.6内置的venv模块:
首先确保Python 3.6的pip已安装并升级:
python3.6 -m ensurepip --upgrade
然后删除之前的测试环境,重新创建:
rm -rf ~/Desktop/testenv3.6 python3.6 -m venv ~/Desktop/testenv3.6
激活环境后,把pip升级到支持Python 3.6的最后一个稳定版本(最新pip已不再支持3.6):
source ~/Desktop/testenv3.6/bin/activate pip install --upgrade pip==21.3.1
3. 安装目标包
现在再尝试安装pandas、numpy等包,应该就能正常完成了:
pip install pandas numpy
为什么之前的方案无效?
- 你之前修改pip的导入语句只是临时绕开了表面错误,但核心的zlib缺失问题没解决——因为Python 3.6本身没编译zlib模块,系统层面的zlib1g-dev装了也没用。
- 跨版本使用virtualenv(用3.8的virtualenv创建3.6的环境)会导致pip的依赖链混乱,出现导入错误。
- 移动Python目录的操作只会破坏系统的Python路径配置,反而引发更多问题。
内容的提问来源于stack exchange,提问作者antoniopgs
相关产品推荐
相关产品推荐

