为啥easy_install依赖检查在线

Posted

技术标签:

【中文标题】为啥easy_install依赖检查在线【英文标题】:why does easy_install dependency check online为什么easy_install依赖检查在线 【发布时间】:2015-04-03 08:59:03 【问题描述】:

我一直在分发一个 python 2.7 包分发作为鸡蛋。我们一直在向人们推荐 easy_install,因为我们知道它的保质期有限,因为我们使用 Windows 和 Linux,并且不在 PyPI 上分发。

当我们的用户调用安装时:

easy_install mypack.egg

最后发生的事情看起来像是在线检查依赖项。当 easy_install 在 PyPI 上找不到注册列表时,这会导致人们报告错误。为什么会发生这种依赖关系检查?是因为我们没有明确的“要求”部分吗?我不介意easy_install 会查找我指定的依赖包,但这似乎不同......它正在寻找一个依赖列表。

【问题讨论】:

【参考方案1】:

来自easy_install documentation

您可以使用 --allow-hosts (-H) 选项来限制 >EasyInstall 将在哪些域上查找链接和下载。 --allow-hosts=None >完全阻止下载。

例如:

easy_install -H None -f somedir SomePackage

将尝试仅使用在 somedir 中找到的鸡蛋和源包安装 SomePackage,并禁止所有远程访问。你当然应该>确保在 somedir 中拥有 SomePackage 的所有依赖项。

或在鸡蛋配置中:

--no-find-links 阻止添加任何链接。

如果您想避免添加在easy_install 正在安装的>项目中定义的链接(无论是请求的项目还是>依赖项),此参数很有用。使用时, --find-links 会被忽略。

这并不能回答“为什么存在这种行为?”这个问题,但有助于改变它。

【讨论】:

谢谢,但让我重申一下我的问题的难点。如果SomePackage依赖OtherPackage,如果它在线查找OtherPackage并安装它,我就可以了。其实我想要这个。我只是不希望它查找 SomePackage 的依赖项列表并在找不到时报告错误。就我而言,我将列出这些要求。这个答案是否解决了这种区别? 因此,在依赖项列表中,有一个您不希望它查找的子集,因为您通过其他方式提供它们,或者您只想隐藏错误 这样你就不必解释“没关系,不是真的”? 不,我的问题与加载真正的依赖包无关,无论是零个、一个还是多个都无关紧要。假设我的包裹是 SomePackage。它唯一的依赖是OtherPackage。我不介意它是否会查找 OtherPackage 并安装它。问题是它去 cheeseshop 并寻找 SomePackage 或其依赖项的列表。我不断收到的错误消息是它正在尝试(当然失败)这样做。 有一个我不理解的区别。你不介意它去奶酪店,但是当它去的时候,它会问一些的东西。您不想隐藏错误,您希望它不存在,即使它是-致命的。如果它不是“在鸡蛋里”的问题,--quite 标志不会削减它,所以用类似于docs.python.org/3/library/warnings.html#warning-filter 的内容过滤掉警告

以上是关于为啥easy_install依赖检查在线的主要内容,如果未能解决你的问题,请参考以下文章

为啥 Python easy_install 不能在我的 Mac 上运行?

为啥 Python easy_install 不能在我的 Mac 上运行?

Scrapy 安装错误 pip 和 easy_install

为啥 python 框架安装指南会建议对一些必需的包使用 easy_install 而对其他包使用 pip?

python安装包的方式

easy_install与pip 区别