【问题标题】:Installing a whl from a url while using setuptools使用 setuptools 从 url 安装 whl
【发布时间】:2018-04-08 18:03:01
【问题描述】:

在我的 setup.py 中,我在 required_libraries 参数中指定了许多库。这些通常采用以下形式:oauthlib==2.0.6。现在我还想使用托管在远程 url 上的轮子安装一个库:http://ci.tensorflow.org/view/Nightly/job/nightly-pi-zero/lastSuccessfulBuild/artifact/output-artifacts/tensorflow-1.4.0-cp27-none-any.whl。只需将此作为条目添加到 required_libraries 列表中就会导致错误:

'install_requires' must be a string or list of strings containing valid project/version requirement specifiers; Invalid requirement,....

setuptools 上的文档帮助不大。有没有人有进行此类安装的经验?我想这将是一个常见问题,但我可能在谷歌上搜索了错误的单词

【问题讨论】:

    标签: python setuptools python-wheel


    【解决方案1】:

    使用dependency_links 参数;这在setuptools docs 中有描述。示例:

    from setuptools import setup
    
    setup(
        install_requires=['tensorflow'],
        dependency_links=[
            'http://ci.tensorflow.org/view/Nightly/job/nightly-pi-zero/lastSuccessfulBuild/artifact/output-artifacts/tensorflow-1.7.0-cp27-none-any.whl',
        ],
    )
    

    运行安装脚本:

    $ python setup.py install
    running install
    running bdist_egg
    running egg_info
    ...
    Processing dependencies for spam==0.0.0
    Searching for tensorflow
    Downloading http://ci.tensorflow.org/view/Nightly/job/nightly-pi-zero/lastSuccessfulBuild/artifact/output-artifacts/tensorflow-1.7.0-cp27-none-any.whl
    Best match: tensorflow 1.7.0
    Processing tensorflow-1.7.0-cp27-none-any.whl
    Installing tensorflow-1.7.0-cp27-none-any.whl to /Users/hoefling/.virtualenvs/stackoverflow-py27/lib/python2.7/site-packages
    writing requirements to /Users/hoefling/.virtualenvs/stackoverflow-py27/lib/python2.7/site-packages/tensorflow-1.7.0-py2.7.egg/EGG-INFO/requires.txt
    Adding tensorflow 1.7.0 to easy-install.pth file
    Installing toco_from_protos script to /Users/hoefling/.virtualenvs/stackoverflow-py27/bin
    Installing saved_model_cli script to /Users/hoefling/.virtualenvs/stackoverflow-py27/bin
    Installing freeze_graph script to /Users/hoefling/.virtualenvs/stackoverflow-py27/bin
    Installing toco script to /Users/hoefling/.virtualenvs/stackoverflow-py27/bin
    Installing tensorboard script to /Users/hoefling/.virtualenvs/stackoverflow-py27/bin
    
    Installed /Users/hoefling/.virtualenvs/stackoverflow-py27/lib/python2.7/site-packages/tensorflow-1.7.0-py2.7.egg
    ...
    

    【讨论】:

    • 太棒了。有没有办法根据项目的构建方式指定使用不同的依赖链接?例如,如果我使用pip install -e [foo] 使用网址www.foo.com/wheel.whl,如果我使用pip install -e [bar] 使用www.bar.com/wheel.whl 或类似的?
    • 您的意思是当您使用extras 时? extras 参数由包管理器 (pip/easy_install) 处理,根本不传递到设置脚本中。
    • 是的,我一直在使用 extras 来指定我在不同情况下需要的其他依赖项。是否可以将上述 url 引用的 whl 添加为额外的 dep?
    猜你喜欢
    • 2012-11-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-19
    • 2017-03-19
    相关资源
    最近更新 更多