首页 > 解决方案 > Python无法在库中导入模块

问题描述

我正在尝试使用 PyQt5 的 QSerialPort 模块。我发现的所有内容都表明包含 QSerialPort 的 QtSerial 应该与 PyQt5 一起提供。例如,

>>> from PyQt5 import QtSerial
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: cannot import name 'QtSerial' from 'PyQt5' (/usr/lib/python3.8/site-packages/PyQt5/__init__.py)

我尝试从 PyCharm 内部以及在命令行上使用 pip 安装 PyQt5。我已经尝试升级 pip 并重新安装 PyQt5。我可以使用 PyQt5 的其他模块,例如 PyQt5.QtWidgets 导入没有任何问题。我也尝试过从 AUR(我正在使用 Archlinux)安装和安装qt5-serialport-595,但无济于事。qt51-serialport

当我转到命令行并运行$ pip list -v PyQt5安装了 PyQt5/usr/lib/python3.8/site-packages/时,我可以看到,当我看那里时,我可以看到该文件/usr/lib/python3.8/site-packages/PyQt5/QtSerialPort.abi3.so存在。但是我也无法导入 PyQt5.QtSerial 因为它也找不到,尽管消息略有不同:ImportError: libQt5SerialPort.so.5: cannot open shared object file: No such file or directory

这不是由导入语句中的拼写错误引起的。我已经尝试了几乎所有可能的字母 Q 和 T 以及 Serial 和 Port 的排列。如何使用 PyQt5 的串口模块?

标签: pythonpippycharmpyqt5libraries

解决方案


基于这个 Archlinux 论坛帖子,我运行pacman -Si python-pyqt5了一个包含该行的可选 deps 列表,qt5-serialport: QtSerialPort因此我使用 yay 安装 qt5-serialport。这与qt51-serialportqt5-serialport-595以及实际上任何名称中带有 serialport 的 AUR 包不同,可以通过搜索 AUR 站点找到,出于某种原因。现在,当我在命令行上使用 python 时,我可以from PyQt5.QtSerialPort import QSerialPort没有错误。

我应该注意,https://pypi.python.org/simplePyCharm 用来查找可安装包的包 repo、可搜索的 AUR 列表和 pip 似乎都没有显示 qt5-serialport 作为选项。因此,即使我下载了它并且 python 可以从命令行找到它,它仍然没有被 PyCharm 导入,这是一个单独的问题。


推荐阅读