ImportError: cannot import name ‘Protocol‘ from ‘typing‘ (/usr/local/python3.7.0/lib/python3.7/typin

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6


今天在运行pre-commit的时候出现了下面的错误:

INFO] Installing environment for https://github.com/Lucas-C/pre-commit-hooks.
[INFO] Once installed this environment will be reused.
[INFO] This may take a few minutes...
An unexpected error has occurred: CalledProcessError: Command: ('/root/.cache/pre-commit/repo2ipbsuzs/py_env-python3.7/bin/python', '/root/.cache/pre-commit/repo2ipbsuzs/py_env-python3.7/bin/pip', 'install', '.')
Return code: 1
Expected return code: 0
Output:
Processing /root/.cache/pre-commit/repo2ipbsuzs
Preparing metadata (setup.py): started
Preparing metadata (setup.py): finished with status 'error'

Errors:
error: subprocess-exited-with-error

× python setup.py egg_info did not run successfully.
│ exit code: 1
╰─> [38 lines of output]
Traceback (most recent call last):
File "/root/.cache/pre-commit/repo2ipbsuzs/py_env-python3.7/lib/python3.7/site-packages/setuptools/_vendor/importlib_metadata/_compat.py", line 9, in <module>
from typing import Protocol
ImportError: cannot import name 'Protocol' from 'typing' (/usr/local/python3.7.0/lib/python3.7/typing.py)

During handling of the above exception, another exception occurred:
......

我的环境是python 3.7.5

解决方法

查资料说 it should work since Python 3.8, try updating.
于是升级成python3.8:

conda create -n py38 python=3.8
conda activate py38

然后在虚拟的python3.8的环境里面pre-commit,然后就不报错了。

参考文献

​can not import Protocol from typing​


阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: python