Senario 1: Jalankan tugas automatik pada jenkins, gunakan pengguna jenkins (dengan kebenaran sudo) apabila melaksanakan tugas ujian , dan skrip ujian berada dalam linux Execution (latar belakang), ralat berlaku apabila kod berikut dilaksanakan:
os.system(f"/usr/bin/konsole -e {cmd_orin2_10s}")
Senario 2: Tiada masalah dengan skrip ujian dilaksanakan secara setempat . Apabila melaksanakan secara setempat, pengguna root digunakan dan tetingkap arahan boleh dibuka seperti biasa
Log ralat:
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.
Penyelesaian:
Ia boleh dibandingkan daripada senario 1 dan senario 2, ia sepatutnya disebabkan oleh pembolehubah persekitaran punca. Untuk mencari masalah daripada pembolehubah persekitaran dan tetingkap yang dipaparkan, anda boleh mencari eksport DISPLAY=":0.0"
Banyak kali anda sudah terbiasa menggunakan pycharm dan semuanya telah selesai, tetapi anda mengabaikan banyak masalah laluan Kadangkala, anda perlu berinteraksi dengan persekitaran dan platform lain , jika anda menulis program C# untuk memanggil python, ia bersamaan dengan menghantar parameter ke terminal untuk dimulakan Pada masa ini, pelbagai Tiada masalah modul akan dipaparkan Sebabnya adalah kerana persekitaran luaran memanggil antara muka python untuk mencari setiap modul dalam program anda, tetapi jika modul ini belum ditambahkan pada pembolehubah persekitaran, ia tidak akan ditemui Oleh itu, adalah disyorkan untuk menggunakan pernyataan berikut di hadapan setiap fail py yang digunakan
sys.path.append(os.path.dirname(os.path.abspath(__file__)) + '/../')
Operasi ini boleh menambah keseluruhan direktori peringkat atas fail semasa kepada pembolehubah persekitaran, supaya semua fail di bawah direktori peringkat atas boleh dipanggil dengan mudah
Jika anda mempunyai banyak peringkat direktori dan direktori semasa berada di lokasi yang dalam, maka anda boleh menukar sedikit arahan ini untuk memasukkan semua fail dan direktori yang anda ingin gunakan, seperti Ya
sys.path.append(os.path.dirname(os.path.abspath(__file__)) + '/../../')
Sudah tentu, jika anda hanya mahu memanggil semua direktori di bawah folder semasa, maka anda boleh menggunakan
sys.path.append(os.path.dirname(os.path.abspath(__file__)) + './')
Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan ralat semasa membuka terminal menggunakan python di bawah linux. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!