From 24dba46635ce6ff3ec36e45d355ac3a74aac1795 Mon Sep 17 00:00:00 2001 From: Lei Yang Date: Wed, 14 Sep 2022 14:56:36 +0800 Subject: [PATCH] [Feature] Install mmhuman3d without torch (#253) --- setup.py | 32 ++++++++++++++++++++------------ 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/setup.py b/setup.py index 12f8d762..a3371d9d 100644 --- a/setup.py +++ b/setup.py @@ -1,7 +1,12 @@ from setuptools import find_packages, setup -import torch -from torch.utils.cpp_extension import BuildExtension, CUDAExtension +try: + import torch + from torch.utils.cpp_extension import BuildExtension, CUDAExtension + cmd_class = {'build_ext': BuildExtension} +except ModuleNotFoundError: + cmd_class = {} + print('Skip building ext ops due to the absence of torch.') def readme(): @@ -19,14 +24,17 @@ def get_version(): def get_extensions(): extensions = [] - if torch.cuda.is_available(): - ext_ops = CUDAExtension( - 'mmhuman3d.core.renderer.mpr_renderer.cuda.rasterizer', # noqa: E501 - [ - 'mmhuman3d/core/renderer/mpr_renderer/cuda/rasterizer.cpp', # noqa: E501 - 'mmhuman3d/core/renderer/mpr_renderer/cuda/rasterizer_kernel.cu', # noqa: E501 - ]) - extensions.append(ext_ops) + try: + if torch.cuda.is_available(): + ext_ops = CUDAExtension( + 'mmhuman3d.core.renderer.mpr_renderer.cuda.rasterizer', # noqa: E501 + [ + 'mmhuman3d/core/renderer/mpr_renderer/cuda/rasterizer.cpp', # noqa: E501 + 'mmhuman3d/core/renderer/mpr_renderer/cuda/rasterizer_kernel.cu', # noqa: E501 + ]) + extensions.append(ext_ops) + except Exception as e: + print(f'Skip building ext ops: {e}') return extensions @@ -109,7 +117,7 @@ def gen_packages_items(): setup( name='mmhuman3d', version=get_version(), - description='OpenMMLab 3D Human Toolbox and Benchmark', + description='OpenMMLab 3D Human Parametric Model Toolbox and Benchmark', long_description=readme(), long_description_content_type='text/markdown', author='OpenMMLab', @@ -118,7 +126,7 @@ def gen_packages_items(): url='https://github.com/open-mmlab/mmhuman3d', packages=find_packages(exclude=('configs', 'tools', 'demo')), ext_modules=get_extensions(), - cmdclass={'build_ext': BuildExtension}, + cmdclass=cmd_class, include_package_data=True, classifiers=[ 'Development Status :: 4 - Beta',