gpt4 book ai didi

python - 导入matplotlib导致 "int() argument must be a string"错误

转载 作者:行者123 更新时间:2023-12-01 22:52:14 26 4
gpt4 key购买 nike

我是 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

最佳答案

看起来这是 pyside6 中的错误v6.3.0matplotlib 依赖于渲染图的库之一; here's the bug report .这是一个新错误,并且已经修复,所以它捕获了你,真是倒霉!

解决方案:这个问题似乎在 pyside 6.4.0 版(10 月 13 日发布)中得到了解决,所以一个解决方案是升级它,或者你可以降级,例如到 6.2 版。另一个解决方案是尝试使用另一个后端,因为我认为这个问题只影响 Qt 后端。 (backendmatplotlib 的渲染引擎 — read all about them。)尝试后一个选项很容易,所以让我们从这里开始吧。

使用另一个后端

在你的脚本的顶部试试这个:

import matplotlib
matplotlib.use('tkagg')

或者你可以试试其他的; see this page for help.

升级或降级 pyside

要处理这个问题,您需要处理 'virtual environments' .您可能已经在这样做了。环境让您拥有不同版本的 Python 和不同的包集合,适用于您可能从事的不同项目。

修复基础环境...

当您安装 Anaconda 时,它创建了一个名为 base 的环境,其中包含 Anaconda 中的“一切”(Python 加上许多库,如 matplotlib)。您可以在 base 环境中升级 pyside 的版本,方法是从“开始”菜单打开 Anaconda 提示符,然后键入以下内容:

conda install -c conda-forge pyside==6.4.0

但是,大多数程序员不使用他们的基础环境,而是更喜欢管理特定于他们的项目的环境。如果您正在这样做,或者想尝试一下,请继续阅读。

...或者创建一个新环境

或者,要创建一个新环境,请打开 Anaconda 提示符并键入以下内容,但将 MYENV 替换为适合该环境的简短名称:

conda create -n MYENV python=3.10 pyside=6.4.0 anaconda

或者您可以将 anaconda 替换为您想要的软件包列表,例如 jupyter scipy networkx 或其他任何内容。

然后您将开始使用此环境并使用 conda activate MYENV,您的脚本或笔记本应该可以在其中正常运行。

关于python - 导入matplotlib导致 "int() argument must be a string"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74112099/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com