背景
在从源码安装 PaddleDetection
时,需要安装依赖 pyclipper
,有时会遇到编译 pyclipper
时出现的错误,错误提示为未定义 future feature annotations
。这个错误消息表明 setuptools_scm
模块中存在语法错误。
Collecting pyclipperUsing cached https://pypi.tuna.tsinghua.edu.cn/packages/dd/03/09e2415b72b470851588dfc7c9b7b4f410a79ed8e2c6c1fb25dfec789b70/pyclipper-1.3.0.post4.tar.gzComplete output from command python setup.py egg_info:/usr/lib/python3.6/distutils/dist.py:261: UserWarning: Unknown distribution option: 'long_description_content_type'warnings.warn(msg)Traceback (most recent call last):File "", line 1, in File "/tmp/pip-build-a4prn_d4/pyclipper/setup.py", line 102, in cmdclass=cmdclass,File "/usr/lib/python3/dist-packages/setuptools/__init__.py", line 129, in setupreturn distutils.core.setup(**attrs)File "/usr/lib/python3.6/distutils/core.py", line 108, in setup_setup_distribution = dist = klass(attrs)File "/usr/lib/python3/dist-packages/setuptools/dist.py", line 372, in __init___Distribution.__init__(self, attrs)File "/usr/lib/python3.6/distutils/dist.py", line 281, in __init__self.finalize_options()File "/usr/lib/python3/dist-packages/setuptools/dist.py", line 528, in finalize_optionsep.load()(self, ep.name, value)File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 2324, in loadreturn self.resolve()File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 2330, in resolvemodule = __import__(self.module_name, fromlist=['__name__'], level=0)File "/tmp/pip-build-a4prn_d4/pyclipper/.eggs/setuptools_scm-7.1.0-py3.6.egg/setuptools_scm/__init__.py", line 5from __future__ import annotations^SyntaxError: future feature annotations is not definedDistribution mode: Compiling Cython generated .cpp sources.----------------------------------------Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-a4prn_d4/pyclipper/
解决办法
错误提示未定义 future feature annotations
,错误消息表明 setuptools_scm
模块中存在语法错误。
最简单的方法是升级 setuptools
包到最新版本,因为新版 setuptools
已经支持 future feature annotations
特性。
可以通过以下命令升级 setuptools
:
pip3 install --upgrade setuptools -i https://pypi.tuna.tsinghua.edu.cn/simple
然后再次尝试安装 pyclipper
:
pip3 install pyclipper -i https://pypi.tuna.tsinghua.edu.cn/simple