解决linux下使用python打开terminal时报错的问题

作者:小柴i 时间:2022-10-06 10:46:25 

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"

参考文档:

《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__)) + './')

总结

  • 很多时候 terminal 运行出现 no module 错误大概都是因为当前文件夹没有加入环境变量导致的

  • 通过上述的命令尝试一下,将跟路径尽可能地加入到环境变量中,即可以随便调用了

来源:https://www.cnblogs.com/aplmmy49y/p/17213642.html

标签:python,terminal,报错
0
投稿

猜你喜欢

  • 浅谈numpy数组的几种排序方式

    2022-04-24 12:48:15
  • python使用nibabel和sitk读取保存nii.gz文件实例

    2021-03-11 16:12:53
  • python模拟预测一下新型冠状病毒肺炎的数据

    2023-12-17 05:09:15
  • 详解Python Socket网络编程

    2022-09-05 14:04:16
  • Python实现读取文件夹按数字排序功能

    2023-08-24 02:12:45
  • python中json格式数据输出的简单实现方法

    2021-03-04 22:19:19
  • PHP addAttribute()函数讲解

    2023-06-06 09:03:45
  • python中format()函数的简单使用教程

    2021-07-10 15:34:01
  • Python中可以用三种方法判断文件是否存在

    2022-05-11 10:15:41
  • Oracle 数据表分区的策略

    2023-07-08 12:19:18
  • dl.dt.dd.ul.li.ol区别及应用

    2008-05-24 09:42:00
  • Pipenv一键搭建python虚拟环境的方法

    2022-07-15 03:49:41
  • Dreamweaver MX新功能试用:连续空格

    2008-01-06 21:03:00
  • js增强的自定义事件模型

    2008-02-18 12:37:00
  • Pytest allure 命令行参数的使用

    2022-04-12 17:06:19
  • python中datetime模块中strftime/strptime函数的使用

    2023-11-15 15:02:46
  • 利用PHP函数计算中英文字符串长度的方法

    2023-10-13 16:35:46
  • 长文章自动分页类

    2008-09-10 12:11:00
  • Python使用progressbar模块实现的显示进度条功能

    2023-11-20 05:40:07
  • python中Django文件上传方法详解

    2021-12-31 13:40:41
  • asp之家 网络编程 m.aspxhome.com