You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在requirements.txt一键安装时先安装PyTorch以支持setup.py导入?

解决方案

方案一:修改setup.py,延迟导入并指定构建依赖

将torch加入构建依赖列表,同时把torch的导入逻辑延迟到setup函数执行阶段,避免脚本启动时就触发导入报错。修改后的setup.py代码如下:

from setuptools import setup

def main():
    # 延迟导入torch,确保构建依赖先被安装
    import torch
    ext_modules = []
    if torch.cuda.is_available():
        from torch.utils.cpp_extension import BuildExtension, CUDAExtension
        ext_modules.append(
            CUDAExtension('iou3d_cuda', [
                'src/iou3d.cpp',
                'src/iou3d_kernel.cu',
            ],
            extra_compile_args={'cxx': ['-g'],
                                'nvcc': ['-O2']})
        )
    
    setup(
        name='iou3d',
        ext_modules=ext_modules,
        cmdclass={'build_ext': BuildExtension} if ext_modules else {},
        setup_requires=['torch']
    )

if __name__ == '__main__':
    main()

pip会优先安装setup_requires中声明的torch,再执行后续的构建逻辑,解决了依赖顺序问题。

方案二:用pyproject.toml定义构建依赖(推荐)

遵循PEP 518标准,在项目根目录创建pyproject.toml文件,提前声明构建所需的依赖,pip会在处理setup.py之前自动安装这些依赖:

[build-system]
requires = ["setuptools", "torch>=1.10.0"]  # 可根据需求指定torch版本
build-backend = "setuptools.build_meta"

添加该文件后,原setup.py无需修改,pip会先安装torch,再执行setup.py中的导入和构建流程。

方案三:调整requirements.txt的安装顺序

如果仅在本地开发场景使用,可以调整requirements.txt的内容,先安装torch再安装当前项目:

torch>=1.10.0
./  # 替换为你的iou3d项目本地路径或Git仓库地址

pip会按顺序安装依赖,确保torch先被安装完成,再执行项目的构建。

内容的提问来源于stack exchange,提问作者hanisalah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 12:55:18