pip install 似乎忽略了依赖项链接

pip install 似乎忽略了依赖项链接

我有一个依赖于多个软件包的 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_linkspip:

pip install -e /path/to/python/module --process-dependency-links --allow-all-external

如果您正在使用发行版系统 pip,则可能需要升级 pip:

pip install pip --upgrade

似乎发生在拉取请求中#1519

相关内容