python - 如何用 pip 替换现有环境来重现 Python 环境?
问题描述
Python 环境传统上是用requirements.txt
文件复制的。这仅在您愿意创建新环境时才有效
用新环境重现 Python Env
$ python -m venv .venv && source .venv/bin/activate
$ pip install -r requirements.txt
$ pip list
pkg1==1.0.0
pkg2==1.0.0
pkg2_dep==1.0.0 # Not written in requirement.txt
使用现有环境重现 Python Env
$ python -m venv .venv && source .venv/bin/activate
$ pip install requirements.txt
# Made changes to requirements.txt
# Removed pk2==1.0.0
$ pip install requirements.txt
$ pip list
pkg1==1.0.0
pkg2==1.0.0 # Should be uninstalled!
pkg2_dep==1.0.0 # this too
上述限制是由于 pip 无法同时安装和卸载。其他语言通过使用锁定文件来支持这一点。
问题:
- 如何使用 pip 重现 Python 环境
requirements.txt
或 newpyproject.toml
? - 如果 pip 无法实现,那么其他 packager-manager 的其他解决方案是否存在用于此目的?
解决方案
看看 pipenv https://docs.pipenv.org/#pipenv-clean
clean
Uninstalls all packages not specified in Pipfile.lock.
pipenv clean [OPTIONS]
推荐阅读
- c# - Xamarin.Forms Picker ItemDisplayBinding 不使用静态列表
- scheme - Scheme的块结构效率
- python - Python PANDAS:在组内应用多行布尔标准?
- groovy - 如何将 groovy 地图转换为 json
- firebase - 在firebase函数onFinalize中获取uid以进行firebase存储
- angular - 在 KendoUI 中的图表上创建分隔线
- bash - 在bash中使用变量执行curl命令
- javascript - Javascript this.object.property = object.property 是通过引用还是值传递;打破垃圾收集器/内存泄漏
- python - 使用 numpy 数组进行条件操作
- swift - 防止用户在 UITextView 中输入多个新行