Python图形界面学习记录2、解决Pycharm安装Pyside2出现的问题
1、使用Anaconda,在pycharm下安装pyside2。安装方法有下面几种:
- 使用pycharm里面的file->settings>project interrupt进行安装大概率会失败,提示时间超时timeout。
- 使用pycharm下的终端进行安装,也大概率会失败,因为下载速度太慢,这个包有100多M
pip install PySide2 # For the latest version on PyPi
-
通过http下载
pip install --index-url=http://download.qt.io/snapshots/ci/pyside/5.12/latest pyside2 --trusted-host download.qt.io
- 通过官网下载 pip install 对应的pyside2版本.whl
推荐使用第3种方法下载。
2、终端提示下载安装成功,运行示例,发现提示缺少shiboke库,直接在终端pip install shiboke。
3、运行官方示例程序(示例程序在最后面),发现提示没有安装PySide2库,打开项目下的venv/Lib/site-packages/,发现没有Pyside2,使用终端重新执行安装命令,提示该库已经存在。
这时,我们去anaconda的安装路径下找到Pyside2的文件夹,如果anaconda是默认安装路径,那么路径为C:\ProgramData\Anaconda3\Lib\site-packages,找到PySide2,把该文件夹和PySide2-5.15.0.dist-info文件夹一起复制到项目下的venv/Lib/site-packages/文件夹下,继续找到shiboke2和shiboken2-5.15.0.dist-info文件夹,复制到项目下的site-packages文件夹下。
Pycharm在项目上右键选择Reload form Disk,发现项目下的venv/Lib/site-packages/已经有了Pyside2和shiboke2的包。打开project interrupt,可以看到这两个包也有了。
4、继续尝试运行示例程序,发现提示Qt平台插件没有初始化。
此时,我看网上的解决办法有两种选择,一种打开环境变量,在用户变量里面添加,但是,我选择这种办法没有成功,还是有相同的错误提示。
另外一种方法是,打开项目下的Pyside2文件夹下的__init__.py文件,添加代码:(需要注意的是如果修改的是anaconda路径下的__init__.py文件,会提示错误)
保存,运行程序。成功了。
示例程序:
import sys import random from PySide2 import QtCore, QtWidgets, QtGui class MyWidget(QtWidgets.QWidget): def __init__(self): super().__init__() self.hello = ["Hallo Welt", "Hei maailma", "Hola Mundo", "Привет мир"] self.button = QtWidgets.QPushButton("Click me!") self.text = QtWidgets.QLabel("Hello World") self.text.setAlignment(QtCore.Qt.AlignCenter) self.layout = QtWidgets.QVBoxLayout() self.layout.addWidget(self.text) self.layout.addWidget(self.button) self.setLayout(self.layout) self.button.clicked.connect(self.magic) def magic(self): self.text.setText(random.choice(self.hello)) if __name__ == "__main__": app = QtWidgets.QApplication([]) widget = MyWidget() widget.resize(800, 600) widget.show() sys.exit(app.exec_())
如果还有问题的朋友,可以一起交流学习。