我可以仅使用 pip 使直接安装的软件包保持最新吗?

oro*_*ome 6 pip

如何列出我直接安装的软件包pip,忽略因此安装的任何依赖项?

我有一个在其中运行的 virtualenv,命令如下

$ pip install A B C
$ pip install X Y Z
Run Code Online (Sandbox Code Playgroud)

结果我不仅安装了 A、B、C、X、Y 和 Z,还安装了依赖项 p、q、r、s、t、u、v 和 w。但是查看任何给定的软件包,我不记得它是否是我直接安装的。我想保持这个 venv 中直接安装的软件包是最新的,比如

$ pip install -U --directly-installed
Run Code Online (Sandbox Code Playgroud)

其效果是

$ pip install -U A B C X Y Z
Run Code Online (Sandbox Code Playgroud)

有没有办法仅使直接安装的软件包明确保持最新(仅根据这些软件包的要求更新其依赖项)?

phd*_*phd 6

在工作中,我们手动处理直接安装的软件包列表。也就是说,如果我们需要一个包,我们将其添加到requirements.txt并运行

pip install -r requirements.txt
Run Code Online (Sandbox Code Playgroud)

之后我们运行

pip freeze > requirements-freezed.txt
Run Code Online (Sandbox Code Playgroud)

保存包和依赖项的完整列表。当我们需要重新创建虚拟环境时,我们运行

pip install -r requirements-freezed.txt
Run Code Online (Sandbox Code Playgroud)

仅升级直接安装的软件包的任务是

pip install -U -r requirements.txt
pip freeze > requirements-freezed.txt
Run Code Online (Sandbox Code Playgroud)