栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Setuptools无法使用dependency_links中的链接

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Setuptools无法使用dependency_links中的链接

好的,所以我解决了(或者被黑客入侵,具体取决于您的看法)我自己的问题。

代码有两个问题。

第一个问题是链接不正确。尽管我已经在其他地方看到过这种格式的文件,但是它对我来说不管用(无论是使用setuptools

mkvirtualenvmypackage
还是Distribution
mkvirtualenv --distributemypackage
)。我发现它最后需要zip扩展,并在Github上发现可以使用该
https://github.com/user/project/archive/commit.zip
格式下载特定的提交。

然后我仍然有一个问题,尽管它现在可以识别链接了,但仍然会选择Github版本上的PyPi版本。原因是,Github上的最后一次提交(在发布到PyPi之后)仍具有与PyPi的最新版本相同的版本号。因此,事实证明,这个问题实际上是如何使setuptools从另一个来源(也可以在pypi上使用相同版本号的另一个来源)安装软件包的重复项目?。为了解决这个问题,我尝试了以下设置

setup.py
(其中一些在其他Stackoverflow问题中已经提到有效):

install_requires=[],dependency_links=['https://github.com/chrisglass/xhtml2pdf/archive/28d12fcaafc4c47b13f1f6f42c2bfb73f90cc947.zip',],

这根本没有安装xhtml2pdf。

install_requires=['xhtml2pdf',],dependency_links=['https://github.com/chrisglass/xhtml2pdf/archive/28d12fcaafc4c47b13f1f6f42c2bfb73f90cc947.zip#egg=xhtml2pdf',],

这安装了最新的PyPi版本(0.0.5)。

install_requires=['xhtml2pdf==0.0.5',],dependency_links=['https://github.com/chrisglass/xhtml2pdf/archive/28d12fcaafc4c47b13f1f6f42c2bfb73f90cc947.zip#egg=xhtml2pdf-0.0.5',],

这在PyPi中安装了0.0.5版本。实际上,如果版本号相同,则setuptools和distribution会选择Github版本上的PyPi版本,因为PyPi版本应该更稳定。

install_requires=['xhtml2pdf==0.0.6',],dependency_links=['https://github.com/chrisglass/xhtml2pdf/archive/28d12fcaafc4c47b13f1f6f42c2bfb73f90cc947.zip#egg=xhtml2pdf-0.0.6',],

这是从Github下载该软件包的(因为PyPi上不存在版本0.0.6),但是在安装时却抱怨该版本不匹配,因为软件包中指定的版本实际上是0.0.5。

install_requires=['xhtml2pdf<=0.0.6',],dependency_links=['https://github.com/chrisglass/xhtml2pdf/archive/28d12fcaafc4c47b13f1f6f42c2bfb73f90cc947.zip#egg=xhtml2pdf-0.0.6',],

终于成功了。Setuptools(和发行版)意识到Github版本必须是较新的,因为这就是我所说的。在安装时,它并没有抱怨实际版本为0.0.5,因为它仍然可以满足要求。

您可能会认为这有点骇人听闻。我对这种解决方案并不完全满意。但是我也有一个截止日期,并且有效。请注意:在实际发布0.0.6版本时,我将开始遇到问题。我想正确固定我的依赖关系,因此将来在我重新安装时不会遇到任何问题,这不是正确的固定方法。但是我想您可以使用以下文档来弄乱版本号:https :
//pythonhosted.org/setuptools/setuptools.html#specifying-your-project-s-
version
。关键是该版本应(假装)高于0.0.5,但也应是一个数字(带有可选字符),您将来不会期望在PyPi中将其显示为该版本(并且明显低于该版本)。下一个发行号很可能是(在我的情况下为0.0.6))。

我希望这对其他人有帮助:)。

注意:我使用一个

requirements.txt
文件,该
setup.py
文件由该文件处理以提取需求。当您
https://github.com/chrisglass/xhtml2pdf/archive/28d12fcaafc4c47b13f1f6f42c2bfb73f90cc947.zip#egg=xhtml2pdf-0.0.6
requirements.txt
文件中使用时,也可以使用进行安装
pipinstall -r requirements.txt



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/645082.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号