Python软件包可以依赖于另一个Python软件包的特定版本控制修订吗?

发布于 2021-01-29 17:03:12

某些有用的Python软件包在pypi上已损坏,并且唯一可接受的版本是版本控制系统中的特定版本。可以用setup.py例如

requires = 'svn://example.org/useful.package/trunk@1234'

关注者
0
被浏览
77
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    您需要做两件事。首先,要求您想要的确切版本,例如:

    install_requires = "useful.package==1.9dev-r1234"
    

    然后包含一个dependency_links设置,指定在哪里找到它:

    dependency_links = ["svn://example.org/useful.package/trunk@1234#egg=useful.package-1.9dev-r1234"]
    

    请注意,URL的版本#egg=部分dependency_links必须与您在其中指定的内容 完全
    匹配install_requires;这就是将这两部分联系在一起的原因。

    发生的情况是setuptools在链接上看到#egg标记,并将该URL保存为该精确版本的软件包的可用下载URL。然后,当稍后尝试解决该要求时,应下载该精确的SVN
    URL。

    (不过,请注意,为使此方法 真正
    起作用,目标SVN修订版实际上必须使用该名称和版本来构建一个鸡蛋。否则,您的依赖项将在运行时失败!因此,这仅在您所依赖的软件包有效会在其默认内部版本号中使用SVN修订标签。)



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看