Python中Virtualenv虚拟环境使用遇到的几个问题求助
Linux 环境,Python2.7.x
1,假设我是新建虚拟环境,那原来主环境中 pip 安装的三方包在虚拟环境中是不是自动可以用?
2,假设我已经创建了虚拟环境 env1,那我在原来主环境中安装了一个新的三方包,那要如何操作,可以在 env1 中可以直接 import 这个新的包,而不需要在 env1 再次安装?
3,假设我已经创建了虚拟环境 env1,env2,然后我在 env2 中安装了一个新的三方包,那要如何操作,可以在 env1 中可以直接 import 这个新的包,而不需要在 env1 再次安装?
Python中Virtualenv虚拟环境使用遇到的几个问题求助
虚拟环境是Python开发的基础工具,常见问题主要围绕创建、激活、依赖管理和环境复制。
1. 创建虚拟环境失败 通常是Python路径问题或权限不足。确保使用正确的Python解释器:
# 指定Python版本创建
python3.8 -m venv myenv
# 或使用绝对路径
/usr/bin/python3 -m venv myenv
如果系统没有venv模块,先安装virtualenv包:pip install virtualenv
2. 激活环境无效 不同系统激活方式不同:
# Windows
myenv\Scripts\activate.bat # cmd
myenv\Scripts\Activate.ps1 # PowerShell
# Linux/Mac
source myenv/bin/activate
激活后命令行提示符应显示环境名。如果没变化,手动设置PATH:
export PATH="/path/to/myenv/bin:$PATH"
3. 环境隔离不彻底 虚拟环境只隔离Python包,不隔离系统环境变量。如果需要完全隔离,考虑用Docker。检查已安装包:
pip list # 应只显示虚拟环境内的包
4. 复制环境到其他机器
不要直接复制文件夹,用requirements.txt:
# 导出依赖
pip freeze > requirements.txt
# 新环境安装
pip install -r requirements.txt
对于复杂项目,用pipenv或poetry能更好地处理依赖树。
5. 虚拟环境占用空间大 每个环境都包含完整的Python副本。删除不再使用的环境:直接删除环境文件夹即可。
6. 在IDE中使用 PyCharm/VSCode等IDE需要手动设置解释器路径:
- PyCharm: Settings → Project → Python Interpreter → 添加环境路径
- VSCode: 选择解释器(Ctrl+Shift+P)→ 输入
myenv/bin/python
总结:掌握基础命令就能应对大部分情况。
轮写好安装脚本 shell 的重要性,环境直接初始化。
你应该切换到用 Pipenv 或者 pyvenv
可以通过创建的时候添加参数–system-site-packages 来使用系统的 site-packages 2。3 暂时不太好实现,因为 virtualenv 的出现解决的很重要的一个问题就是,各个 repo 中 python 环境的隔离。 而且,考虑到不同 repo 中依赖的包的版本可能是不一致的,不太推荐不同环境中包的混用。
要做都可以做到, 只是不建议而已
1. 楼上有人说了, 通过 --system-site-packages 解决
2. 3. 可以通过修改 PYTHONPATH 或 添加 .pth 文件解决
当然这样就违反了环境隔离的初衷, 容易给今后埋坑。 我认为 2. 3. 应该完全杜绝,1. 在一些不太重要的场合 可以酌情使用, 比如安装 PyQt
1L 正解。不过 virtualenv 就是为了给多个 Python 环境隔离包来管理,重复安装没什么损失吧,优先从 cache 安装,而且体积也不是特别大的样子。
彼此独立的 你的依赖不应该都在 requirements.txt 里面么

