升级到PySide6.3.0后出现错误
ModuleNotFoundError: No module named 'PySide6.QtWidgets'
import sys
from PySide6.QtWidgets import QApplication, QLabel
app = QApplication(sys.argv)
label = QLabel("Hello World!")
label.show()
app.exec()
$ python3.10 test.py
Traceback (most recent call last):
File "test.py", line 2, in <module>
from PySide6.QtWidgets import QApplication, QLabel
ModuleNotFoundError: No module named 'PySide6.QtWidgets'
好像有变化
PySide6.3.0
.
如何在
QtWidgets
中导入PySide6.3.0
模块?
很明显它正在导入 PySide6 包,但它没有导入 QtWidgets、QtGui、QtCore 等包
#!/usr/bin/env python3.10
import sys
import PySide6
from PySide6 import QtWidgets
from PySide6.QtWidgets import (QApplication, QMainWindow, QWidget, QPushButton, QVBoxLayout, QHBoxLayout)
from PySide6 import QtCore
from PySide6.QtCore import (Qt, QSize)
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
#TODO
app.exec()
$ ./test.py
Traceback (most recent call last):
File "./test.py", line 4, in <module>
from PySide6 import QtWidgets
ImportError: cannot import name 'QtWidgets' from 'PySide6' (~/.local/lib/python3.10/site-packages/PySide6/__init__.py)
有问题的一点是因为更新没有执行 “卸载/安装”并保留一些文件,并且不会覆盖 PySide6 目录包含新两个轮子的内容。如果你 检查你的站点包,你会看到只剩下 3 个模块。当我使用
将
PySide6.2.4
升级到PySide6.3.0
时出现问题
$ python3.10 -m pip install --upgrade pyside6
由于我们正在升级以前的软件包,因此当我们尝试从 import
pyside6
模块时,会导致问题
解决方案:$ python3.10 -m pip uninstall pyside6 pyside6-addons pyside6-essentials shiboken6
$ python3.10 -m pip cache purge
$ python3.10 -m pip install pyside6
重新安装之前需要清除cache
文件
pyside6
否则会使用之前的缓存文件并且
import error
会继续使用。
$ python3.10 -m pip install --force-reinstall --no-cache-dir pyside6
不需要 pip uninstall
和
pip cache clear
from PySide6.QtGui import QDesktopServices