关于python:如何“假装”使用pip安装软件包?

How do I “pretend” to install a package using pip?

这似乎是一个很简单的问题,但我在PIP文档中找不到任何参考,唯一一个似乎相关的问题提到了一个标志,这个标志显然自1.5版(8.1版在撰写本文时已被弃用)。

如何"假装"使用pip安装包或包列表,而不实际安装它们?我有两个单独的用例:

  • 我需要查看long(~70行)requirements.txt中缺少哪些包,但实际上没有安装它们;如果不安装缺少的需求,则查看哪些需求已经满足,这将满足我的需求。
  • 在没有使用诸如portage或aptitude之类的工具的情况下,查找尚未安装在计算机上的包的依赖项。


还有一个非常有用的pip-tools包,它提供了一个pip-sync工具,您可以在"干运行"模式下针对您的需求文件执行该工具:

1
2
3
4
5
6
7
8
9
10
11
$ mkvirtualenv test_so
New python executable in test_so/bin/python
Installing setuptools, pip, wheel...done.
...
(test_so) $ pip install pip-tools
...
Installing collected packages: six, click, first, pip-tools
(test_so) $ echo"Django==1.6.11"> requirements.txt
(test_so) $ pip-sync --dry-run requirements.txt
Would install:
  Django==1.6.11

另外,这里还有一个部分相关的线程:检查需求是否是最新的。


根据PIP文档,生成requirements.txt文件的正确方法是通过pip freeze > requirements.txt。希望这就是你想要的。