有没有办法使用pip一次安装所有python模块?

时间:2016-08-15 20:57:37

标签: python windows ubuntu pip

我想使用单个pip命令安装Python 2.7.12的所有可用模块。有没有办法在不必指定每个包名的情况下执行此操作?

2 个答案:

答案 0 :(得分:3)

这是一个糟糕的主意,但您可以随时使用autoinstaller,如果您没有安装软件包,它会自动通过pip下载软件包。

答案 1 :(得分:1)

更新:其他答案 正确时他们说这是一个糟糕的主意:我使用此方法安装的某些软件包将无法正常工作,因为它们已修复其他软件包已更新所需的依赖项。下一次,我使用virtualenv。有一天,我将从packages.pypy.org生成一个包含其依赖项的软件包列表,以便有人可以快速创建包含这些软件包的许多环境。

好吧,我确实找到了这样做的方法,但仅适用于http://packages.pypy.org的1000个最受欢迎的软件包。但其他页面也可以处理,只需要一些创造力。对于该页面,您需要一个电子表格程序来处理该页面。我使用了LibreOffice Calc。我使用命令提示符在Windows上执行此操作。

首先,打开我刚刚发布的链接并选择/复制所有文本(并且不要展开网页上的任何包名称。)

然后,将其粘贴在Calc中的任何单元格上。打开Find&替换对话框。如果您使用其他电子表格程序,请确保它找到& amp;替换支持正则表达式。选中Regular Expressions旁边的复选框(或类似内容),在downloads:\s+\d+字段中输入Search for,确保Replace with字段中没有文字,然后全部保留默认情况下的其他选项,单击Replace all(假设程序有此按钮)。之后,通过使用Search for字段中的空格替换另一个替换(Python包名称没有空格)来消除尾随空格。完成这两次替换后,每个单元格中都有一个包名称。

然后将整个电子表格复制到文本编辑器中,任何编辑器都应该工作(我使用记事本)。文本编辑器将每个单元格的内容(即包名称)放在它自己的行上。文件中不会出现任何空白行(但检查不会有任何损失)。此时您可以关闭电子表格,而不必保存它的数据。

现在保存文本文件。打开命令提示符并切换到保存文本文件的文件夹。现在输入:

for /F %p in ('type TEXT_FILE_NAME.txt') DO pip.exe install %p

[如果命令提示符无法找到要使用的正确点数,则需要输入pip的完整路径,例如C:\ Python27 \脚本\ pip.exe]

Voila,pip现在正在安装我给出的链接中列出的所有软件包。

您应该将stdout(也可能是stderr)重定向到文件,因为命令提示没有大的历史记录缓冲区。为此,你在命令的末尾加上这样的东西:

>>PIP_STDOUT_FILE.txt 2>>PIP_STDERR_FILE.txt

如果你使用它,请注意突然中断pip,因为输出不再进入终端。您可能会在程序包安装过程中将其终止。特别是,如果使用文本编辑器查看输出,请经常重新加载文件。附加--log LOG_FILE.txt代替上述内容更安全,但日志文件变得更加冗长,并且像往常一样将其消息写入命令提示符。

有很多

  1. 仅限Linux的软件包
  2. 使用Microsoft C ++编译器构建的包
  3. 除非你做了一些额外的工作,否则使用pip来安装它们会失败。但这适用于大多数软件包。