作为过去的解决方案,例如 pip ignores dependency_links in setup.py,此配置应该有效。在
我的相关内容设置.py在
packages=find_packages(),
dependency_links=['http://github.com/koji-project/koji/tarball/master#egg=koji'],
install_requires=['jira', 'PyYAML', 'requests', 'psycopg2',
'elasticsearch', 'beanbag', 'pyzabbix', 'enum34',
'beautifulsoup4', 'pytz', 'koji'],
tests_require=['flake8', 'autopep8', 'mock'],
include_package_data=True,
cmdclass={'test': setupTestRequirements}
我唯一能想到的是我的网址是无效的。我不明白为什么会这样,因为它的版本是1.14.0。在
在运行pip install .
时,我得到。在
运行python setup.py develop --user
时,输出没有提到Koji
您的配置正确。然而,问题出在别处。看看^{} repo on github :项目没有提交}(通过
setup.py
。只要没有setup.py
脚本,pip
和{setup.py install
/setup.py develop
)都无法安装您的项目,因为它们根本无法安装koji
依赖项,因为它根本就不是有效的python包。在更新:
github上的
koji
repo的问题是,它只是位于Fedora Pagure上的实际dev repo的镜像,没有与上游同步。因此,正确的答案是使用真实的开发存储库,而不是github镜像:别紧张。:-)
原始答案(过时,仅当您想从Github上的
koji
s repo mirror安装时):我认为有两种方法可以解决这种情况:
分叉
koji
setup.py
脚本或将其复制到某处(有关详细信息,请参阅下面的内容),提交并推送setup.py
中调整dependency_links
中的URL。在为了测试,我准备了一个fork of ^{} with a setup script ;如果我使用它的URL而不是上游repo,则安装成功。我还用
^{pr2}$koji-1.14.0.post1
标记了我自己的“release”,以区分带有安装脚本的版本和普通版本。具有新依赖项的示例setup.py
:使用
pip
测试安装结果:安装的软件包看起来不错:
这种方法的缺点是在安装脚本合并到上游之前维护fork的额外开销。这包括测试并最终在您的fork中调整},每次您想要同步上游更新。我可能会创建一个单独的分支,并在那里提交安装脚本,sync the fork as usual,然后在fork的主节点上重新建立分支的基础,但是如果您习惯了另一个更新策略,请坚持使用它。在
koji
的{使用来自TestPyPI
实际上,我在TestPyPI上找到了一些最新版本的
koji
轮子。这也是我得到上面fork的setup.py
的地方-我下载了源tar,解包并复制了安装脚本。这意味着koji
开发人员正在研究通过PyPI分发项目,并正在编写安装脚本,但尚未提交。当他们处理它时,您可以使用测试包索引作为解决方法。这样,您就不会从源代码构建包,而是使用koji
devs构建和上载的轮子:这种方法的缺点是:
koji
包是否可以安装。即使是这样,也不能保证所安装的代码能按预期工作(尽管应该如此)。当你有了fork,你总是可以自己修复安装脚本-在这里,如果wheel文件有错误,你就完了。在最后一个注释eh3>
当然,您可以结合这两种解决方法,并在
dependency_links
中使用这两个url:这样,如果在TestPyPI上找不到包,那么它将从fork构建。在
最后注2
您可能需要安装一些附加的系统包;至少对于我的系统
CentOS Linux release 7.3.1611 (Core)
我必须安装curl-devel
来满足pycurl
。在相关问题 更多 >
编程相关推荐