在Linux上使用PyQt5,经常会有app = QApplication(sys.argv)这行代码,但是有的Linux没有图形界面,运行时报错:Could not connect to any X display.
解决方式一:
在app = QApplication(sys.argv)前面加一行代码
os.environ["QT_QPA_PLATFORM"] = "offscreen"
import os
import sys
from PyQt5.QtWidgets import QApplication
if __name__ == '__main__':
# 设置环境变量,告诉 Qt 使用 offscreen
os.environ["QT_QPA_PLATFORM"] = "offscreen"
app = QApplication(sys.argv)
# 核心代码
sys.exit(app.exec_())
解决方式二:
修改环境配置,进入环境配置:vim ~/.bashrc
在最后加入一行 export QT_QPA_PLATFORM=offscreen
修改后退出,重新加载一下配置文件:source ~/.bashrc
两种方式的原理是一样的,告诉Qt不再依赖图形界面,可以用在服务器上运行、自动化测试等没有图形界面的情况