我是Python新手。几天前我安装了Anaconda和PyCharm(在D盘),我正在尝试使用该matplotlib包来绘制一张图片。当我单击“运行”时,出现以下错误:
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
Run Code Online (Sandbox Code Playgroud)
Mat*_*all 11
看起来这是pyside6v6.3.0matplotlib中的一个错误,渲染绘图所依赖的库之一;这是错误报告。这是一个新错误,而且已经被修复了,所以你遇到它真是太不幸了!
解决方案:该问题似乎在版本 6.4.0(10 月 13 日发布)中得到修复pyside,因此一种解决方案是升级它,或者您可以降级,例如降级到版本 6.2。另一个解决方案是尝试使用另一个后端,因为我认为问题只影响 Qt 后端。(A是\xe2\x80\x94backend的渲染引擎,请阅读有关它们的所有内容。)尝试后一个选项很容易,所以让我们从这里开始。matplotlib
在脚本顶部尝试一下:
\nimport matplotlib\nmatplotlib.use(\'tkagg\')\nRun Code Online (Sandbox Code Playgroud)\n或者你也可以尝试其他的;请参阅此页面寻求帮助。
\npyside为了解决这个问题,您需要处理“虚拟环境”。您可能已经在这样做了。环境允许您为您可能正在处理的不同项目拥有不同版本的 Python 和不同的包集合。
\nbase...当您安装 Anaconda 时,它会创建一个名为的环境base,其中包含 Anaconda 中的“所有内容”(Python 以及许多类似的库matplotlib)。您可以通过从“开始”菜单打开Anaconda 提示符pyside并键入以下内容来升级环境中的版本:base
conda install -c conda-forge pyside==6.4.0\nRun Code Online (Sandbox Code Playgroud)\n然而,大多数程序员不使用他们的基本环境,而更喜欢管理特定于他们项目的环境。如果您正在这样做,或者想尝试一下,请继续阅读。
\n或者,要创建新环境,请打开 Anaconda 提示符并键入以下内容,但替换MYENV为适合环境的简短名称:
conda create -n MYENV python=3.10 pyside=6.4.0 anaconda\nRun Code Online (Sandbox Code Playgroud)\n或者您可以替换anaconda为您想要的软件包列表,例如jupyter scipy networkx或其他。
然后,您将开始使用此环境,并且conda activate MYENV您的脚本或笔记本应该可以在其中运行,没有问题。