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

今天在运行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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

农民小飞侠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值