重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

linux下使用python打开terminal时报错怎么解决

这篇文章主要介绍了linux下使用python打开terminal时报错怎么解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇linux下使用python打开terminal时报错怎么解决文章都会有所收获,下面我们一起来看看吧。

创新互联公司长期为上千多家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为和平企业提供专业的成都网站建设、做网站,和平网站改版等技术服务。拥有10余年丰富建站经验和众多成功案例,为您定制开发。

linux下使用python打开terminal时报错

场景一:在jenkins上执行自动化任务,测试任务执行时使用jenkins用户(有sudo权限),测试脚本在linux执行(后台),执行到以下代码时报错:

os.system(f"/usr/bin/konsole -e {cmd_orin2_10s}")

场景二:测试脚本在本地执行没有问题,本地执行时使用root用户,可正常打开命令窗口

错误日志

17:44:03  qt.qpa.xcb: could not connect to display 
17:44:03  qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
17:44:03  This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
17:44:03  
17:44:03  Available platform plugins are: eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, wayland-egl, wayland, wayland-xcomposite-egl, wayland-xcomposite-glx, xcb.

解决方法

从场景1和场景2可对比出,应该是由环境变量引起。从环境变量已经显示窗口这两方面去查找问题,可找到 export DISPLAY=":0.0"

补充:pycharm 运行没问题但是 terminal(终端)运行却各种 module 问题

问题描述

很多时候你用 pycharm 用习惯了,啥都弄好了,但是却忽略了很多路径上的问题,偶尔需要和其他环境、平台交互的时候,比如写了一个 C# 程序去调用 python 的借口,就相当于 terminal 传参数启动,这个时候就会显示各种各样的 No module 问题 解决办法 究其原因,是因为外部环境在调用 python 接口的时候,要去你的程序中找各个 module,但是如果这些 module 还没有加入到环境变量中,那么就会找不到,因此推荐用下面的语句放在每个用到的 py 文件的最前头

sys.path.append(os.path.dirname(os.path.abspath(__file__)) + '/../')
  • 这样的操作可以将当前文件的上一级目录整个添加到环境变量中,如此便可以轻松地调用上一级目录下面的所有文件啦

  • 如果你的目录层级很多,当前的目录在一个较深的位置,那么你可以将这个命令稍微改一下,总之将你要使用的所有文件和目录包含进去即可,比如可以

sys.path.append(os.path.dirname(os.path.abspath(__file__)) + '/../../')
  • 当然如果你只想调用当前文件夹下的所有目录,那么就可以使用

sys.path.append(os.path.dirname(os.path.abspath(__file__)) + './')

关于“linux下使用python打开terminal时报错怎么解决”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“linux下使用python打开terminal时报错怎么解决”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注创新互联行业资讯频道。


网页题目:linux下使用python打开terminal时报错怎么解决
URL标题:http://cqcxhl.com/article/ipiidd.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP