2024-06-07 18:08:35 发布
网友
我的setup.py中有依赖关系链接:
... dependency_links = ['http://github.com/robot-republic/python-s3/tarball/master.tar.gz#egg=python-s3'], ...
但没用。但是安装需要工作正常。 也许还有其他方法可以根据set up.py的需要设置git repo?
我知道这是一个老问题,但是,万一你发现自己像我一样在这里,这就是我的工作。
我在GitHub上有一个依赖于其他GitHub(非pypi)包的包(未在pypi注册)。我花了大量的时间试图找出如何让pip正确处理这个问题。我将包括我在这里所做的修复。
将依赖项放入requirements.txt文件是列出依赖项的首选方法。但是,您还需要在安装程序中填充install_requires。正是在这个阶段,我遇到了一个障碍,pip不想从GitHub安装依赖项。
大多数地方,包括这个问题的答案,都告诉您填充安装程序的依赖项链接部分。但是,您还需要用依赖项链接中引用的包的名称填充install\u requires字段。
例如,如果requirements.txt包含以下内容。
somepackage==1.2.0 https://github.com/user/repo/tarball/master#egg=repo-1.0.0 anotherpackage==4.2.1
然后,您的设置调用应该如下所示:
setup( name='yourpackage', version='1.7.5', packages=[], url='', license='', author='', author_email='', description='', install_requires=[ 'somepackage==1.2.0', 'repo==1.0.0', 'anotherpackage==4.2.1' ], dependency_links=[ 'https://github.com/user/repo/tarball/master#egg=repo-1.0.0' ] )
好的,现在我们已经配置了包;下一个任务是安装它。这是我花了很多时间的地方。我不明白为什么指定依赖关系显然什么也没做。技巧是,在某些情况下,您需要为pip设置allow all external(可以更具体一些)标志。例如:
pip install git+https://github.com/user/anotherrepo.git --process-dependency-links --allow-all-external
你完成了,而且成功了!
免责声明:dependency_links和标记process dependency links和allow all external已弃用,因此它们将很快被删除。在我花的时间里,我找不到一个更好的、更喜欢的方法,而且仍然正确地拥有pip函数。
因为pip版本18.1PEP 508 URL受支持。这意味着您不再需要已弃用的依赖关系链接。 而是直接在install_requires列表中编写依赖项。 来自@Chad的示例如下:
setup( name='yourpackage', version='1.7.5', packages=[], url='', license='', author='', author_email='', description='', install_requires=[ 'somepackage==1.2.0', 'repo==1.0.0 @ https://github.com/user/archive/master.zip#egg=repo-1.0.0', 'anotherpackage==4.2.1' ], )
要安装软件包,只需编写:
pip install yourpackage
(不带--进程依赖关系链接)
This answer应该会有帮助。简而言之,您需要为#egg=python-s3指定版本(或“dev”),这样看起来就像#egg=python-s3-1.0.0。
#egg=python-s3
#egg=python-s3-1.0.0
根据@Cerin的评论更新:
我知道这是一个老问题,但是,万一你发现自己像我一样在这里,这就是我的工作。
我在GitHub上有一个依赖于其他GitHub(非pypi)包的包(未在pypi注册)。我花了大量的时间试图找出如何让pip正确处理这个问题。我将包括我在这里所做的修复。
将依赖项放入requirements.txt文件是列出依赖项的首选方法。但是,您还需要在安装程序中填充install_requires。正是在这个阶段,我遇到了一个障碍,pip不想从GitHub安装依赖项。
大多数地方,包括这个问题的答案,都告诉您填充安装程序的依赖项链接部分。但是,您还需要用依赖项链接中引用的包的名称填充install\u requires字段。
例如,如果requirements.txt包含以下内容。
然后,您的设置调用应该如下所示:
好的,现在我们已经配置了包;下一个任务是安装它。这是我花了很多时间的地方。我不明白为什么指定依赖关系显然什么也没做。技巧是,在某些情况下,您需要为pip设置allow all external(可以更具体一些)标志。例如:
你完成了,而且成功了!
免责声明:dependency_links和标记process dependency links和allow all external已弃用,因此它们将很快被删除。在我花的时间里,我找不到一个更好的、更喜欢的方法,而且仍然正确地拥有pip函数。
因为pip版本18.1PEP 508 URL受支持。这意味着您不再需要已弃用的依赖关系链接。 而是直接在install_requires列表中编写依赖项。 来自@Chad的示例如下:
要安装软件包,只需编写:
(不带--进程依赖关系链接)
This answer应该会有帮助。简而言之,您需要为
#egg=python-s3
指定版本(或“dev”),这样看起来就像#egg=python-s3-1.0.0
。根据@Cerin的评论更新:
相关问题 更多 >
编程相关推荐