annotations導入報錯


轉自

  「 不止於python

 

相關環境版本

python 3.7.10
fastapi 0.63.0
Cython 0.29.22

 

報錯文件

# main.py
from __future__ import annotations
......# code

 

報錯信息

1. 

main.py:1:23: future feature annotations is not defined
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/dist-packages/Cython/Build/Dependencies.py", line 1249, in cythonize_one_helper
    return cythonize_one(*m)
  File "/usr/local/lib/python3.7/dist-packages/Cython/Build/Dependencies.py", line 1225, in cythonize_one
    raise CompileError(None, pyx_file) 

 2. 

Traceback (most recent call last):
  File "/usr/lib/python3.5/py_compile.py", line 125, in compile
    _optimize=optimize)
  File "<frozen importlib._bootstrap_external>", line 735, in source_to_code
  File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed
  File "./prog.py", line 1
    from __future__ import annotations
    ^
SyntaxError: future feature annotations is not defined

During handling of the above exception, another exception occurred:

 

報錯原因

 

1. 使用Cython版本過低

  https://github.com/cython/cython/issues/2950#issuecomment-679136993

2. 使用python3.7以下版本
    報錯: https://stackoverflow.com/questions/52889746/cant-import-annotations-from-future/52890129

   根據PEP-563在py3.7中才能使用

      https://www.python.org/dev/peps/pep-0563/#enabling-the-future-behavior-in-python-3-7

  

報錯解決

 1.升級Cython, 使用3.0版本

pip3.7 install Cython==3.0a1

2.使用python3.7以上版本

 

相關鏈接 

https://github.com/cython/cython/issues/2950

https://stackoverflow.com/questions/52889746/cant-import-annotations-from-future/52890129

https://www.python.org/dev/peps/pep-0563/#enabling-the-future-behavior-in-python-3-7

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM