python - 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 的串口模块?
解决方案
基于这个 Archlinux 论坛帖子,我运行pacman -Si python-pyqt5
了一个包含该行的可选 deps 列表,qt5-serialport: QtSerialPort
因此我使用 yay 安装 qt5-serialport。这与qt51-serialport、qt5-serialport-595以及实际上任何名称中带有 serialport 的 AUR 包不同,可以通过搜索 AUR 站点找到,出于某种原因。现在,当我在命令行上使用 python 时,我可以from PyQt5.QtSerialPort import QSerialPort
没有错误。
我应该注意,https://pypi.python.org/simple
PyCharm 用来查找可安装包的包 repo、可搜索的 AUR 列表和 pip 似乎都没有显示 qt5-serialport 作为选项。因此,即使我下载了它并且 python 可以从命令行找到它,它仍然没有被 PyCharm 导入,这是一个单独的问题。
推荐阅读
- php - 我可以在脚本中将 PHP 函数设为“私有”吗?
- c# - 访问 List 中的元素
在 C# 中使用十进制值 - firebase - 如何在 Firebase Unity 中使用 ServerValue.Timestamp?
- swift - 如何在 Swift 的 ScreenSaverView 上添加自定义文本?
- python - 需要帮助缩小 SciPy curve_fit 函数“随机”行为不端的原因
- java - JSONException String 无法转换为 JSONObject
- selenium-webdriver - QAF Perfecto - 无法使用 XML 中的测试数据
- html - iOS 在音频上传时使用“捕获”HTML 属性崩溃
- android - 程序类型已经存在:com.android.internal.http.multipart.ByteArrayPartSource
- angular - Angular:ngrx/效果的一些问题