使用setuptools从URL安装whl包遇阻,setup.py依赖配置报错求助
解决setup.py中添加远程wheel包到install_requires的问题
嘿,这个问题我之前帮人处理过——直接把wheel的URL丢进install_requires对应的列表里肯定会报错,因为setuptools对这个参数的字符串格式有严格要求,得符合PEP 508规范才行。
正确的写法思路
你需要用@符号把包名和远程wheel的URL关联起来,这样setuptools才能正确识别这是某个包的特定安装源,而不是一串无意义的字符串。
具体代码示例
把你的required_libraries列表修改成这样:
required_libraries = [ "oauthlib==2.0.6", # 用@连接包名与远程wheel地址 "tensorflow @ http://ci.tensorflow.org/view/Nightly/job/nightly-pi-zero/lastSuccessfulBuild/artifact/output-artifacts/tensorflow-1.4.0-cp27-none-any.whl" ]
完整的setup.py示例大概是这样:
from setuptools import setup required_libraries = [ "oauthlib==2.0.6", "tensorflow @ http://ci.tensorflow.org/view/Nightly/job/nightly-pi-zero/lastSuccessfulBuild/artifact/output-artifacts/tensorflow-1.4.0-cp27-none-any.whl" ] setup( name="your-project-name", version="1.0.0", install_requires=required_libraries, # 其他必要配置项,比如packages、entry_points等 )
额外注意点
- 确保你的setuptools和pip版本足够新,PEP 508的这种格式支持是在较新版本中引入的。如果还是报错,先执行升级命令:
pip install --upgrade setuptools pip - 别再用旧的
dependency_links参数了,这个功能已经被pip弃用,PEP 508格式是当前的标准做法。
内容的提问来源于stack exchange,提问作者downer
相关产品推荐
相关产品推荐

