如何在setup.py中配置PyTorch LTS版本依赖
解决setup.py配置PyTorch LTS版本依赖问题
你之前install_requires中使用包名@索引页地址的写法不符合规范,@后需要填写对应安装包的直接下载直链,不能填包索引页地址,因此pip无法识别匹配的安装包。下面提供两种可直接落地的配置方案:
方案1:使用dependency_links配置(适配全平台,无需针对不同环境写多个包链接)
这是维护成本最低的方案,修改后的setup.py如下:
from setuptools import setup setup( name="my_library", version="0.1", description="my library description", packages=["my_library"], python_requires=">=3.8", install_requires=[ "torch==1.8.2+cu111", "torchvision==0.9.2+cu111", "pillow>=8.0.0", "numpy>=1.21.0", "timm==0.4.12", ], # 新增dependency_links参数指定PyTorch LTS的包索引页 dependency_links=[ "https://download.pytorch.org/whl/lts/1.8/torch_lts.html" ] )
注意:pip 19.0及以上版本原生支持该配置,无需额外命令行参数,直接执行
pip install -e . --no-cache-dir即可正常识别安装对应的PyTorch LTS版本,后续要调整为>=兼容写法时仅需修改install_requires中的版本号规则即可,无需改动其他配置。
方案2:PEP 508直链写法(适合需要固定特定平台包的场景)
如果你的自研库仅面向特定Python版本、系统架构和CUDA版本使用,可以直接指定对应包的直链,示例(适配Linux x86、Python3.8、CUDA111场景):
from setuptools import setup setup( name="my_library", version="0.1", description="my library description", packages=["my_library"], python_requires=">=3.8", install_requires=[ "torch@https://download.pytorch.org/whl/lts/1.8/cu111/torch-1.8.2%2Bcu111-cp38-cp38-linux_x86_64.whl", "torchvision@https://download.pytorch.org/whl/lts/1.8/cu111/torchvision-0.9.2%2Bcu111-cp38-cp38-linux_x86_64.whl", "pillow>=8.0.0", "numpy>=1.21.0", "timm==0.4.12", ] )
内容的提问来源于stack exchange,提问作者Alexandre Brown
相关产品推荐
相关产品推荐

