Pop_OS 22.04下python3 -m venv虚拟环境site-packages路径异常问题
虚拟环境中Django模块找不到(ModuleNotFoundError)的解决方法
环境信息
- OS: Pop_OS 22.04
- Python版本: 3.10.6
问题症状
使用python3 -m venv创建虚拟环境后,安装Django并启动项目时触发ModuleNotFoundError,提示找不到django模块。此前相同操作可正常执行,更新系统Python安装后出现该问题;但在虚拟机中执行完全相同的步骤却能正常运行。
根因分析
对比工作站与虚拟机执行python -m site的输出结果,发现工作站的sys.path中未包含虚拟环境的site-packages目录路径,而虚拟机的sys.path正常包含该路径——这导致虚拟环境中安装的Django无法被Python识别。
修复步骤
创建虚拟环境前,先通过导出PYTHONPATH指定对应虚拟环境的site-packages路径,该修复对后续创建的虚拟环境永久有效:
# 示例:假设要创建的虚拟环境名为venv,先设置PYTHONPATH export PYTHONPATH="./venv/lib/python3.10/site-packages" # 创建虚拟环境 python3 -m venv venv # 激活虚拟环境 source venv/bin/activate # 安装Django pip install django
内容的提问来源于stack exchange,提问作者E Cheadle
相关产品推荐
相关产品推荐

