Thonny中启用py5-mode运行代码时出现ImportError报错求助
Thonny中py5-mode运行报错的解决办法
问题描述
在Thonny编辑器启用py5-mode运行代码时,触发导入错误,核心报错信息为:
ImportError: cannot import name 'ASTText' from 'asttokens' (C:\Users\schwe\AppData\Local\Programs\Thonny\lib\site-packages\asttokens\__init__.py)
完整报错栈:
Traceback (most recent call last): File "C:\Users\schwe\AppData\Roaming\Thonny\plugins\Python310\site-packages\py5_tools\tools\run_sketch.py", line 52, in <module> main() File "C:\Users\schwe\AppData\Roaming\Thonny\plugins\Python310\site-packages\py5_tools\tools\run_sketch.py", line 44, in main imported.run_code( File "C:\Users\schwe\AppData\Roaming\Thonny\plugins\Python310\site-packages\py5_tools\imported.py", line 135, in run_code _run_code( File "C:\Users\schwe\AppData\Roaming\Thonny\plugins\Python310\site-packages\py5_tools\imported.py", line 259, in _run_code _run_sketch(sketch_path, classpath, exit_if_error) File "C:\Users\schwe\AppData\Roaming\Thonny\plugins\Python310\site-packages\py5_tools\imported.py", line 196, in _run_sketch import py5 File "C:\Users\schwe\AppData\Roaming\Thonny\plugins\Python310\site-packages\py5\__init__.py", line 84, in <module> from py5_tools.magics import load_ipython_extension # noqa File "C:\Users\schwe\AppData\Roaming\Thonny\plugins\Python310\site-packages\py5_tools\magics\__init__.py", line 22, in <module> from .drawing import DrawingMagics, DXFDrawingMagic File "C:\Users\schwe\AppData\Roaming\Thonny\plugins\Python310\site-packages\py5_tools\magics\drawing.py", line 27, in <module> from IPython.display import display, SVG, Image File "C:\Users\schwe\AppData\Roaming\Thonny\plugins\Python310\site-packages\IPython\__init__.py", line 51, in <module> from .core.application import Application File "C:\Users\schwe\AppData\Roaming\Thonny\plugins\Python310\site-packages\IPython\core\application.py", line 26, in <module> from IPython.core import release, crashhandler File "C:\Users\schwe\AppData\Roaming\Thonny\plugins\Python310\site-packages\IPython\core\crashhandler.py", line 27, in <module> from IPython.core import ultratb File "C:\Users\schwe\AppData\Roaming\Thonny\plugins\Python310\site-packages\IPython\core\ultratb.py", line 101, in <module> import stack_data File "C:\Users\schwe\AppData\Roaming\Thonny\plugins\Python310\site-packages\stack_data\__init__.py", line 1, in <module> from .core import Source, FrameInfo, markers_from_ranges, Options, LINE_GAP, Line, Variable, RangeInLine, \ File "C:\Users\schwe\AppData\Roaming\Thonny\plugins\Python310\site-packages\stack_data\core.py", line 19, in <module> from stack_data.utils import ( File "C:\Users\schwe\AppData\Roaming\Thonny\plugins\Python310\site-packages\stack_data\utils.py", line 11, in <module> from asttokens import ASTText ImportError: cannot import name 'ASTText' from 'asttokens' (C:\Users\schwe\AppData\Local\Programs\Thonny\lib\site-packages\asttokens\__init__.py)
报错原因
Thonny自带的asttokens库版本过低,而py5依赖的IPython组件需要调用新版本asttokens中的ASTText类,旧版本无该类定义,导致导入失败。
解决步骤
- 打开Thonny的工具菜单,选择打开系统shell
- 在shell中执行升级命令:
pip install --upgrade asttokens - 若上述命令无效,指定Thonny自带的Python解释器路径执行升级:
"C:\Users\schwe\AppData\Local\Programs\Thonny\python.exe" -m pip install --upgrade asttokens - 重启Thonny后,再次尝试运行py5代码
内容的提问来源于stack exchange,提问作者Tom
相关产品推荐
相关产品推荐

