Python 安装 pyclipper 报错 SyntaxError: future feature annotations is not defined

背景

在从源码安装 PaddleDetection 时,需要安装依赖 pyclipper ,有时会遇到编译 pyclipper 时出现的错误,错误提示为未定义 future feature annotations。这个错误消息表明 setuptools_scm 模块中存在语法错误。

Collecting pyclipper
  Using cached https://pypi.tuna.tsinghua.edu.cn/packages/dd/03/09e2415b72b470851588dfc7c9b7b4f410a79ed8e2c6c1fb25dfec789b70/pyclipper-1.3.0.post4.tar.gz
    Complete 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 setup
        return 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_options
        ep.load()(self, ep.name, value)
      File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 2324, in load
        return self.resolve()
      File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 2330, in resolve
        module = __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 5
        from __future__ import annotations
        ^
    SyntaxError: future feature annotations is not defined
    Distribution mode: Compiling Cython generated .cpp sources.
    
    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-a4prn_d4/pyclipper/

Python 安装 pyclipper 报错 SyntaxError: future feature annotations is not defined_第1张图片

解决办法

错误提示未定义 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

你可能感兴趣的:(Python,python)