您好,登錄后才能下訂單哦!
這篇文章主要介紹了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"
很多時候你用 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時報錯怎么解決”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。