這篇文章主要介紹了linux下使用python打開terminal時報錯怎么解決的相關(guān)知識,內(nèi)容詳細(xì)易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇linux下使用python打開terminal時報錯怎么解決文章都會有所收獲,下面我們一起來看看吧。
創(chuàng)新互聯(lián)公司長期為上千多家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為和平企業(yè)提供專業(yè)的成都網(wǎng)站建設(shè)、做網(wǎng)站,和平網(wǎng)站改版等技術(shù)服務(wù)。擁有10余年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。
場景一:在jenkins上執(zhí)行自動化任務(wù),測試任務(wù)執(zhí)行時使用jenkins用戶(有sudo權(quán)限),測試腳本在linux執(zhí)行(后臺),執(zhí)行到以下代碼時報錯:
os.system(f"/usr/bin/konsole -e {cmd_orin2_10s}")
場景二:測試腳本在本地執(zhí)行沒有問題,本地執(zhí)行時使用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可對比出,應(yīng)該是由環(huán)境變量引起。從環(huán)境變量已經(jīng)顯示窗口這兩方面去查找問題,可找到 export DISPLAY=":0.0"
很多時候你用 pycharm 用習(xí)慣了,啥都弄好了,但是卻忽略了很多路徑上的問題,偶爾需要和其他環(huán)境、平臺交互的時候,比如寫了一個 C# 程序去調(diào)用 python 的借口,就相當(dāng)于 terminal 傳參數(shù)啟動,這個時候就會顯示各種各樣的 No module 問題 解決辦法 究其原因,是因為外部環(huán)境在調(diào)用 python 接口的時候,要去你的程序中找各個 module,但是如果這些 module 還沒有加入到環(huán)境變量中,那么就會找不到,因此推薦用下面的語句放在每個用到的 py 文件的最前頭
sys.path.append(os.path.dirname(os.path.abspath(__file__)) + '/../')
這樣的操作可以將當(dāng)前文件的上一級目錄整個添加到環(huán)境變量中,如此便可以輕松地調(diào)用上一級目錄下面的所有文件啦
如果你的目錄層級很多,當(dāng)前的目錄在一個較深的位置,那么你可以將這個命令稍微改一下,總之將你要使用的所有文件和目錄包含進(jìn)去即可,比如可以
sys.path.append(os.path.dirname(os.path.abspath(__file__)) + '/../../')
當(dāng)然如果你只想調(diào)用當(dāng)前文件夾下的所有目錄,那么就可以使用
sys.path.append(os.path.dirname(os.path.abspath(__file__)) + './')
關(guān)于“l(fā)inux下使用python打開terminal時報錯怎么解決”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對“l(fā)inux下使用python打開terminal時報錯怎么解決”知識都有一定的了解,大家如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。