我有一个依赖于多个软件包的 Python 应用程序。不幸的是,其中一个软件包不在 PyPi 中,所以我必须直接从 git repo 安装它。
我一直尝试将它添加到我的setup.py中,如下所示:
setup(
..,
..,
dependency_links = [
'https://github.com/marcuz/libpynexmo.git#egg=nexmomessage'
],
install_requires=[
..,
'nexmomessage'
],
packages=['localpackage']
然而它失败了:没有找到 nexmomessage 的发行版
我看到它创建依赖链接列表的位置:将 dependency_links 写入 common.egg-info/dependency_links.txt - 当我查看该文件时,URL 是正确的。
如果我在命令行运行它:pip install -e git+https://github.com/marcuz/libpynexmo.git#egg=nexmomessage
安装没有问题。
有什么想法吗?
答案1
从 pip 1.5 开始,依赖链接已弃用。目前 pip 仍可通过该标志强制使用它们--process-dependency-links
。您可能还必须使用--allow-external packagename
或--allow-unverified packagename
,其中packagename
实际指定您想要安装的不在官方存储库中的任何依赖项
请注意,由于该功能已弃用,该--process-dependency-links
标志将很快被完全删除。我相信首选方法是提供文件requirements.txt
。
答案2
从 pip 7 开始,它们再次启用。这意味着您现在可以使用dependency_links
pip:
pip install -e /path/to/python/module --process-dependency-links --allow-all-external
如果您正在使用发行版系统 pip,则可能需要升级 pip:
pip install pip --upgrade
似乎发生在拉取请求中#1519