在 Python 中自动下载所需模块的最简单方法?

Posted

技术标签:

【中文标题】在 Python 中自动下载所需模块的最简单方法?【英文标题】:Easiest way to automatically download required modules in Python? 【发布时间】:2011-02-07 18:11:05 【问题描述】:

我想发布一个我写的依赖于几个包的python模块。制作它的最简单方法是什么,以便以编程方式下载这些包,以防它们在正在运行的系统上不可用?这些模块中的大多数应该可以通过 easy_install 或 pip 或类似的方式获得。我只是想避免让用户单独安装每个模块。

谢谢。

【问题讨论】:

大多数包管理系统都有一种方法来指定包的依赖关系,以便自动安装依赖关系。我不知道如何使用 setuptools / Python Package Index 来做到这一点,但我认为有一种机制可以类似地指定依赖项。 【参考方案1】:

pip 使用requirements files,它有a very straightforward format。

有关更多 Python 打包工具建议,请参阅latest from the Python Packaging Authority (PyPA)。

【讨论】:

@J.F.我猜是 Idan Gazit 负责第一张图片;我不确定谁对第二个负责。两者都托管在 Amazon S3 上;图像位置指向它们的 S3 位置,因此您可以复制图像位置并在此处和其他地方使用它们。我在 Titus Brown 的 PyCon 2010 演讲中看到了“Python 同志”; “新热点”已经出现了大约一年。也许对 Python 邮件列表的一些调查可以找到原始来源。 虽然这是目前投票率最高的答案,但它并没有真正提供太多的解决方案(虽然很酷的图形)。我目前在该主题上找到了this recent post。可能会帮助其他人进行此搜索。 @f***789 正确。我已经更新了答案。 setuptools 是首选的新库。我们一直在与分发作战。 ;-)【参考方案2】:

请参阅setuptools docs,了解如何声明您的依赖关系——如果PyPi 中的所有内容都可用,这将允许easy_install 查找、下载和安装所有依赖关系(及其传递闭包),或者如果您指定其他方式依赖项的 URL。

【讨论】:

你觉得点子怎么样? pip 与 setuptools 的比较似乎措辞非常强硬……Python 社区真的有共识认为 pip 更好吗? 另外,pip 可以像 setuptools 那样处理非 PyPi 依赖吗? @user,不幸的是我对 pip 没有太多直接经验,但我的印象是它可以做easy_install 可以做的事情,等等。正如b-list.org/weblog/2008/dec/15/pip 所说,“pip 不会以任何方式改变你的打包工作流程。你只需按照你一直制作的方式制作你的包,然后将它放在网络上的某个地方(最好将它列在 Python 包索引中) ,但如果您不想这样做,则不必这样做)并且使用 pip 的人可以抓取并安装它。”。

以上是关于在 Python 中自动下载所需模块的最简单方法?的主要内容,如果未能解决你的问题,请参考以下文章

在云服务器中运行 python 脚本的最简单方法是啥?

MS-Access - 自动提取表的最简单方法

Python 自动下载论文

python docopt模块详解

使用 CSHTML 进行自动完成的最简单方法是啥

导入整个模块与仅从 python 中的模块导入所需的方法有啥区别? [复制]