导入matplotlib时报'int()参数必须为字符串'错误求助
matplotlib导入报错:TypeError: int() argument must be a string... not 'KeyboardModifier'
错误详情
Traceback (most recent call last): File "G:\onedrive\OneDrive - mail.dlut.edu.cn\PyCharm\shock wave\P6.py", line 7, in <module> import matplotlib.pyplot as plt File "D:\anaconda3\lib\site-packages\matplotlib\pyplot.py", line 2230, in <module> switch_backend(rcParams["backend"]) File "D:\anaconda3\lib\site-packages\matplotlib\__init__.py", line 672, in __getitem__ plt.switch_backend(rcsetup._auto_backend_sentinel) File "D:\anaconda3\lib\site-packages\matplotlib\pyplot.py", line 247, in switch_backend switch_backend(candidate) File "D:\anaconda3\lib\site-packages\matplotlib\pyplot.py", line 267, in switch_backend class backend_mod(matplotlib.backend_bases._Backend): File "D:\anaconda3\lib\site-packages\matplotlib\pyplot.py", line 268, in backend_mod locals().update(vars(importlib.import_module(backend_name))) File "D:\anaconda3\lib\importlib\__init__.py", line 127, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "D:\anaconda3\lib\site-packages\matplotlib\backends\backend_qtagg.py", line 12, in <module> from .backend_qt import ( File "D:\anaconda3\lib\site-packages\matplotlib\backends\backend_qt.py", line 73, in <module> _MODIFIER_KEYS = [ File "D:\anaconda3\lib\site-packages\matplotlib\backends\backend_qt.py", line 74, in <listcomp> (_to_int(getattr(_enum("QtCore.Qt.KeyboardModifier"), mod)), TypeError: int() argument must be a string, a bytes-like object or a number, not 'KeyboardModifier' Process finished with exit code 1
解决方法
这是matplotlib与PyQt版本不兼容导致的问题,可通过以下方式解决:
升级matplotlib到兼容版本
打开Anaconda Prompt,执行命令:conda install matplotlib --upgrade更换matplotlib后端(无需升级)
在代码开头添加两行,指定非Qt的后端,比如TkAgg(支持界面显示)或Agg(仅用于生成图片文件):import matplotlib matplotlib.use('TkAgg') # 替换成'Agg'可用于无界面环境 import matplotlib.pyplot as plt升级PyQt版本
在Anaconda Prompt执行:conda install pyqt --upgrade
内容的提问来源于stack exchange,提问作者loverchun
相关产品推荐
相关产品推荐

