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

 更新时间:2023年03月14日 09:03:41   作者:小柴i  
这篇文章主要介绍了linux下使用python打开terminal时报错,本文通过两种场景分析给大家详细讲解,需要的朋友可以参考下

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 错误大概都是因为当前文件夹没有加入环境变量导致的
  • 通过上述的命令尝试一下,将跟路径尽可能地加入到环境变量中,即可以随便调用了

到此这篇关于linux下使用python打开terminal时报错的文章就介绍到这了,更多相关python打开terminal报错内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python教程pandas数据分析去重复值

    Python教程pandas数据分析去重复值

    Pandas指定行进行去重更新值,加载数据sample抽样函数,指定需要更新的值append直接添加append函数用法,根据某一列key值进行去重key唯一
    2021-09-09
  • python机器学习之神经网络(二)

    python机器学习之神经网络(二)

    这篇文章主要为大家详细介绍了python机器学习之神经网络第二篇,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-12-12
  • Python的装饰器模式与面向切面编程详解

    Python的装饰器模式与面向切面编程详解

    这篇文章主要介绍了Python的装饰器模式与面向切面编程详解,概括的讲,装饰器的作用就是为已经存在的对象添加额外的功能,本文详细了装饰器模式的方方面面,然后引出面向切面编程知识,需要的朋友可以参考下
    2015-06-06
  • 详解Python字典小结

    详解Python字典小结

    这篇文章主要介绍了详解Python字典小结,详细的介绍了什么是字典且创建字典和示例,非常具有实用价值,需要的朋友可以参考下
    2018-10-10
  • PYQT5 实现给listwidget的滚动条添加滚动信号

    PYQT5 实现给listwidget的滚动条添加滚动信号

    这篇文章主要介绍了PYQT5 实现给listwidget的滚动条添加滚动信号,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • python利用dir函数查看类中所有成员函数示例代码

    python利用dir函数查看类中所有成员函数示例代码

    这篇文章主要给大家介绍了关于python如何利用dir函数查看类中所有成员函数的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用python具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习下吧。
    2017-09-09
  • Pytorch之nn.Upsample()和nn.ConvTranspose2d()用法详解

    Pytorch之nn.Upsample()和nn.ConvTranspose2d()用法详解

    nn.Upsample和nn.ConvTranspose2d是PyTorch中用于上采样的两种主要方法,nn.Upsample通过不同的插值方法(如nearest、bilinear)执行上采样,没有可学习的参数,适合快速简单的尺寸增加,而nn.ConvTranspose2d通过可学习的转置卷积核进行上采样
    2024-10-10
  • cmd输入python命令无反应的解决方案

    cmd输入python命令无反应的解决方案

    这篇文章主要介绍了cmd输入python命令无反应的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02
  • Python读入mnist二进制图像文件并显示实例

    Python读入mnist二进制图像文件并显示实例

    这篇文章主要介绍了Python读入mnist二进制图像文件并显示实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • python 列表套json字典根据相同的key筛选数据

    python 列表套json字典根据相同的key筛选数据

    这篇文章主要介绍了python 列表套json字典根据相同的key筛选数据,文章基于python的相关资料展开详细的内容介绍需要的小伙伴可以参考一下
    2022-04-04

最新评论