requirements.txt中含Windows专用包(如pywin32、pyreadline)会导致Linux安装失败;应手动删除平台相关条目,保留跨平台库版本号,确保VS Code正确选择虚拟环境解释器并安装对应系统依赖。

requirements.txt 里有 Windows 专用包名或路径
Windows 导出的 pip freeze 可能包含带平台后缀的包(如 pywin32==306),或依赖于 Windows-only 的 C 扩展(如 pyreadline)。这些包在 Linux 上根本不可安装,pip install -r requirements.txt 会直接卡在第一个失败项上。
- 用
pip install -r requirements.txt --no-deps先跳过依赖,定位具体哪个包报错 - 手动删掉明显平台相关的条目(
pywin32、colorama通常可删,pyreadline必删) - 对跨平台基础库(如
numpy、requests),保留版本号但去掉系统标记(如numpy-1.24.3-cp39-cp39-win_amd64.whl这种 wheel 名不能进requirements.txt)
Linux 缺少 venv 模块或 Python 开发头文件
执行 python3 -m venv venv 报错 ModuleNotFoundError: No module named 'venv',说明系统 Python 安装不完整。Ubuntu/Debian 系发行版常把 venv 拆成独立包,CentOS/RHEL 则可能缺 python3-devel。
- Debian/Ubuntu:运行
sudo apt install python3-venv python3-pip - CentOS/RHEL/Fedora:
sudo dnf install python3-virtualenv python3-devel或sudo yum install python3-virtualenv python3-devel - 验证:激活环境后运行
python -c "import sys; print(sys.prefix)",输出应是./venv路径,不是系统路径
VS Code 没用上你刚建的虚拟环境
终端里 source venv/bin/activate 成功了,which python 指向 venv/bin/python,但 VS Code 还是报 ModuleNotFoundError——它压根没读这个环境。
快速生成专业的 Python 脚本和应用代码。一键创建完整项目结构,支持CLI、API、爬虫、Bot、Django等多种项目类型,包含完整的项目结构、配置文件、依赖管理、测试、README和文档。
- 在 VS Code 中按
Ctrl+Shift+P(Win/Linux)或Cmd+Shift+P(macOS),输入 “Python: Select Interpreter” - 从列表中选
./venv/bin/python(不是系统 Python,也不是“Enter interpreter path…”手输) - 重启 VS Code 终端面板(关闭再开),再运行代码;否则旧终端进程仍绑定原解释器
某些包在 Linux 需要额外系统依赖
像 imutils、opencv-python、matplotlib 这类包,Linux 安装时会编译 C 扩展,缺系统库就静默失败或报错一堆找不到 libxxx.so。
立即学习“Python免费学习笔记(深入)”;
-
imutils依赖opencv-python,后者需要libglib2.0-0、libsm6、libxext6等 - Debian/Ubuntu:
sudo apt install libglib2.0-0 libsm6 libxext6 libxrender-dev libglib2.0-dev - CentOS/RHEL:
sudo dnf install glib2-devel libSM-devel libXext-devel libXrender-devel - 装完再跑
pip install -r requirements.txt,别跳过错误继续

















