【发布时间】:2020-02-28 21:44:08
【问题描述】:
我刚刚将我的项目更新到 Python 3.7,当我在项目上运行 mypy 时看到此错误:error: "Type[datetime]" has no attribute "fromisoformat"
datetime 确实 在 Python 3.7 中有一个函数 fromisoformat,但在以前的 Python 版本中没有。为什么 mypy 会报告这个错误,我怎样才能让它正确分析 Python 3.7?
到目前为止我尝试过的事情:
- 删除 .mypy_cache(其中有一个名为
3.6的可疑子文件夹) - 使用
pip install --upgrade --force-reinstall mypy重新安装 mypy
复制:
创建 python 3.6 项目
在项目venv中安装mypy 0.761(最新)
使用 mypy (
mypy .) 扫描项目将项目更新到 python 3.7
-
添加一个包含此代码的文件:
from datetime import datetime datetime.fromisoformat('2011-11-04 00:05:23.283') 再次扫描项目 (
mypy .) [更新:这实际上工作正常。它正在重新运行我的预提交挂钩,而没有在导致问题的新 Python 版本 venv 上重新安装预提交。]
【问题讨论】:
-
事实上,您无法按照给出的说明重现您的问题。如果您按照您的说明将 mypy 安装到项目 venv 并将项目 venv 升级到 3.7 重新安装该 venv 中的所有项目,您就不会遇到此错误。
-
换句话说,您遇到此问题是因为您在项目 venv 的外部安装了
mypy,该安装在 Python 3.6 或更早版本上运行。
标签: python python-3.x python-3.7 mypy