使用 virtualenv/venv 管理虚拟环境
要不我们还是用回 virtualenv/venv 和 pip 吧
Why
不同的包,会有不同的版本,如果都存在于同一个版本里,会导致“混乱”。参考
nodejs
里的node_modules
virtualenv、venv 区别
假设项目名为
snow
,下面是一些对比,环境名为snow-venv
测试下来 python -m 创建的环境,有时候会出问题,比如 jsw_nx 报错,找不到包的情况。
字段 | venv | virtualenv |
---|---|---|
推荐 | pytohn3 推荐 | python2 推荐用此方案 |
基本 | python3 自带 | python 的第3方库,需要额外安装包 |
安装 | 不需要安装 |
|
创建虚拟环境 |
|
|
激活环境 |
| - |
退出当前环境 |
| |
激活后 |
| - |
安装新包 |
| - |
卸载包 |
| - |
生成依赖列表requirement.txt |
| - |
安装依赖 |
| - |
截图 |
最佳实践
已经更新至 alfred:
vv
命令集合
# 第一个 venv 是命名名,第2个是环境名 venv
python -m venv venv
# 激活
. venv/bin/activate
# 退出
deactivate
# 生成当前环境的 requirement.txt
pip freeze > requirements.txt
# 安装
pip install -r requirements.txt
常见问题
有时候,会出现 ModuleNotFoundError: No module named ‘pymonogo’ 这种情况,处理方式如下:
# 后面的路径为绝对路径
$ python -m venv /Users/admin/alo7i/spider-zhishiq/venv
# 第2次是用这个解决的
$ source venv/bin/activate