Python ไม่สามารถนำเข้าโมดูลภายในไลบรารี [ปิด]
ฉันกำลังพยายามใช้โมดูล QSerialPort ของ PyQt5 ทุกสิ่งที่ฉันพบได้ระบุว่า QtSerial ซึ่งมี QSerialPort ควรมาพร้อมกับ 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)
ฉันได้ลองติดตั้ง PyQt5 จากภายใน PyCharm และในบรรทัดคำสั่งด้วย pip ฉันได้ลองอัปเกรด pip และติดตั้ง PyQt5 ใหม่แล้ว ฉันสามารถใช้โมดูลอื่น ๆ ของ PyQt5 เช่นการนำเข้า PyQt5.QtWidgets ได้โดยไม่มีปัญหา ฉันได้ลองติดตั้งqt5-serialport-595และqt51-serialportจากAUR ด้วย (ฉันใช้ Archlinux) ไม่เป็นประโยชน์
ฉันสามารถเห็นได้เมื่อฉันไปที่บรรทัดคำสั่งและเรียกใช้$ 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และในความเป็นจริงแพ็คเกจ AURใด ๆ ที่มี serialport ในชื่อที่สามารถพบได้จากการค้นหาไซต์ AURด้วยเหตุผลบางประการ ตอนนี้เมื่อฉันใช้ python ในบรรทัดคำสั่งฉันสามารถทำได้from PyQt5.QtSerialPort import QSerialPortโดยไม่มีข้อผิดพลาด
ฉันควรทราบว่าไม่มีแพ็คเกจ repo ที่https://pypi.python.org/simplePyCharm ใช้เพื่อค้นหาแพ็คเกจที่ติดตั้งได้หรือรายการ AUR ที่ค้นหาได้และดูเหมือนว่า pip จะไม่แสดง qt5-serialport เป็นตัวเลือก ดังนั้นแม้ว่าฉันจะดาวน์โหลดมาแล้วและ python สามารถค้นหาได้จากบรรทัดคำสั่ง แต่ PyCharm ก็ยังไม่ถูกนำเข้าซึ่งเป็นปัญหาแยกต่างหาก