ntl*_*rry 6 python ipython jupyter-notebook
注意:我已阅读Python: TypeError: required field "type_ignores" missing from Module in Jupyter notebook,其中包含类似的问题。但是,我仍然被困住了。
问题:我刚刚从 Python 3.7.5 更新到 Python 3.8.5。但是,当我在 Jupyter Notebook 中运行代码时,会显示以下错误消息:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
/usr/local/opt/python@3.8/Frameworks/Python.framework/Versions/3.8/lib/python3.8/codeop.py in __call__(self, source, filename, symbol)
139
140 def __call__(self, source, filename, symbol):
--> 141 codeob = compile(source, filename, symbol, self.flags, 1)
142 for feature in _features:
143 if codeob.co_flags & feature.compiler_flag:
TypeError: required field "type_ignores" missing from Module
Run Code Online (Sandbox Code Playgroud)
当我运行代码时,我收到此消息
i = 1
Run Code Online (Sandbox Code Playgroud)
或代码如
import numpy as np
Run Code Online (Sandbox Code Playgroud)
或代码如
from platform import python_version
print(python_version())
Run Code Online (Sandbox Code Playgroud)
我已阅读Python: TypeError: required field "type_ignores" missing from Module in Jupyter notebook,其中包含类似的问题。但是,该问题中的海报有一个过时的 ipython 版本。我做了一个
pip freeze
Run Code Online (Sandbox Code Playgroud)
并发现我有最新版本(7.2.0),这意味着该问题的解决方案不适用于该问题。
如果您需要,以下是一些额外信息:
我的尝试:我首先尝试从 Python 3.8 恢复到 Python 3.7。这是因为错误消息提到错误来自 /usr/local/opt/ python@3.8 /Frameworks/Python.framework/Versions/3.8/lib/ python3.8 /codeop.py 我试图通过下载来做到这一点pyenv 和 python 3.7(我之前有 python 3.7 但它已经消失了)并通过配置 .zshenv 文件将 python 版本设置为 3.7.5。然而,这导致 jupyter notebook 甚至像 emacs 这样的程序停止处理诸如
command not found: jupyter
Run Code Online (Sandbox Code Playgroud)
和
command not found: emacs
Run Code Online (Sandbox Code Playgroud)
我终于通过从 python 网站下载 python 3.7.5 pkg 文件做到了:
python --version
Run Code Online (Sandbox Code Playgroud)
输出:
Python 3.7.5
Run Code Online (Sandbox Code Playgroud)
但是,当我启动 Jupyter Notebook 时,我仍然收到与以前相同的错误(“TypeError:模块中缺少必填字段“type_ignores””)。我担心安装 Python 3.8 会造成一些永久性损坏。
这是我的 .zshenv 文件配置:
export SACAUX=SACHOME/aux
export SACHOME=/usr/local/sac
export PATH=${PATH}:${SACHOME}/bin
export PATH=SACHOME/bin
export PATH=/usr/bin:/bin:/usr/sbin:/sbin:SACHOME/bin
export PATH=/usr/bin:/bin:/usr/sbin:/sbin:SACHOME/bin:HOME/.pyenv/bin
export PATH=~/.pyenv/versions/3.7.5/bin:${PATH}
export PYTHONPATH=/usr/local/lib/python3.7/site-packages
Run Code Online (Sandbox Code Playgroud)
仅供参考,(如果这有用),我需要的所有包(tensorflow、numpy、scipy)都在 /usr/local/lib/python3.7/site-packages,一个 python 3.7 文件夹中,所以我必须明确设置PYTHONPATH 到 /usr/local/lib/python3.7/site-packages 以便 Python 可以找到要导入的包。
有哪些修复可以解决此“TypeError:模块中缺少必填字段“type_ignores””?
小智 5
尝试使用 werkzeug update 修复它,但没有成功。在 ubuntu 20.04.2 上
发现这个问题是针对一个我不确定我正在使用的包,但提到了更新 iPython。
pip3 install ipython --upgrade
Run Code Online (Sandbox Code Playgroud)
然后它更新了一些 python 包,但没有更新其他包。现在它似乎起作用了。
小智 3
我并不是要复活一个死问题,但我看到最近有人评论要求回答这个问题,这是搜索这个问题时的最佳结果。
我遇到了这个问题,显然这是旧版本中 Werkzeug 包实现的问题,我通过使用 pip 将其从版本 0.15.4 更新到 1.0.1 来修复它:
pip install werkzeug --upgrade
Run Code Online (Sandbox Code Playgroud)
这应该可以解决你的问题;如果您想知道您使用的是哪个版本,请terminal使用以下命令启动并启动 Python 交互式终端python:
import werkzeug
werkzeug.__version__
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2171 次 |
| 最近记录: |