如何让安装工具安装 github 分叉的 PyPI 包?
Posted
技术标签:
【中文标题】如何让安装工具安装 github 分叉的 PyPI 包?【英文标题】:How can I make setup tools install a github forked PyPI package? 【发布时间】:2013-08-18 08:23:55 【问题描述】:这是示例场景。
有一个python包not-mine
,我刚刚在里面发现了一个小bug。我在 github 上找到源代码并 fork 存储库。我进行了必要的更改并提交了拉取请求。不幸的是,包作者正在休假,我有一个截止日期。
我需要一种方法来安装我的分叉存储库,而不是在 PyPI 上安装作者版本。我尝试了以下方法但没有成功:
install_requires = [
'not-mine==1.0.0'
],
dependency_links = [
'http://github.com/my-username/not-mine/tarball/master#egg=not-mine-1.0.0'
]
我错过了什么?
我在调查此问题时偶然发现的资源: How can I make setuptools install a package that's not on PyPI?
【问题讨论】:
我写的包也有同样的问题。 【参考方案1】:您应该能够将 pip
指向带有错误修复的分叉仓库的 URL,因为 pip
can install directly from git repos。
$ pip install git+git://github.com/my-username/not-mine#egg=not-mine
你可以修改pip install
命令,在“#”前用“@”符号指定特定的提交、分支、标签等。
$ pip install git+git://github.com/my-username/not-mine@bugfix_branch#egg=not-mine
【讨论】:
【参考方案2】:如果你只是想在你的系统上安装你的分叉包,你可以简单地将包克隆到你的系统并使用python setup.py install
命令在你的系统上本地安装该包。
如果您需要使用自己的修改包部署应用程序,我建议您使用python virtual environment
【讨论】:
【参考方案3】:您可以分叉项目并将其本地克隆到您的系统。然后通过以下方式引用这个本地分支:
pip install -e ~/Repositories/some_local_fork_repo_path/
“~/Repositories/some_local_fork_repo_path/”是本地克隆的分叉项目的路径。然后,您可以通过简单地处理该本地项目与该本地项目来独立于该项目控制其他本地克隆分叉项目的分支等详细信息。
【讨论】:
以上是关于如何让安装工具安装 github 分叉的 PyPI 包?的主要内容,如果未能解决你的问题,请参考以下文章
如何让 setuptools 安装来自另一个来源的软件包,该软件包在 pypi 上也可以使用相同的版本号?