【问题标题】:How do I "pretend" to install a package using pip?如何“假装”使用 pip 安装软件包?
【发布时间】:2016-09-23 20:06:43
【问题描述】:
这感觉像是一个简单的问题,但我在pip documentation 和the only question that seemed relevant 中找不到任何参考,提到了一个自 1.5 版以来显然已被弃用的标志(在撰写本文时,8.1 版是最新的)。
如何“假装”使用 pip 安装软件包或软件包列表,而不实际安装它们?我有两个单独的用例:
- 我需要查看长(约 70 行)requirements.txt 中缺少哪些包,无需实际安装;在不安装缺少的要求的情况下查看已经满足的要求对我来说会满足这一点。
- 不使用 Portage 或 Aptitude 等工具,查找尚未安装在计算机上的软件包的依赖项。
【问题讨论】:
标签:
python
python-3.x
pip
【解决方案1】:
根据 pip 文档,生成 requirements.txt 文件的正确方法是通过pip freeze > requirements.txt。希望这是您想要的。
【解决方案2】:
还有一个非常有用的pip-tools package,它提供了一个pip-sync 工具,您可以根据您的需求文件在“试运行”模式下执行该工具:
$ 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
另外,这里有一个部分相关的帖子:Check if requirements are up to date。