tidak ditemui" Ralat dalam Paramiko untuk Pelaksanaan Perintah Unix?" /> tidak dijumpai" Ralat dalam Paramiko untuk Pelaksanaan Perintah Unix?" />
Menjalankan Perintah Unix dengan Ralat " not found" dalam Paramiko
Pustaka Paramiko Python mungkin menghadapi kesukaran apabila cuba melaksanakan arahan Unix tertentu menggunakan exec_command . Khususnya, ralat "sh: : not found" mungkin timbul. Walaupun arahan mudah seperti "ls" mungkin berjaya dilaksanakan, arahan khas seperti "sesu" gagal.
Punca Punca
Fungsi exec_command dalam Paramiko secara lalai tidak dijalankan shell dalam mod "log masuk" atau peruntukkan pseudo-terminal. Ini menyebabkan set skrip permulaan yang berbeza diperoleh daripada sesi interaktif SSH biasa.
Penyelesaian
Beberapa penyelesaian boleh menangani isu ini:
-
Gunakan laluan penuh: Tentukan keseluruhan laluan ke arahan, cth., "/bin/sesu test".
-
Tetapkan pembolehubah persekitaran PATH: Pastikan PATH sistem termasuk direktori yang mengandungi boleh laku.
-
Jalankan arahan melalui cangkerang log masuk: Gunakan suis "--login", cth., "bash --login -c "sesu test"".
-
Ubah suai persekitaran arahan: Tetapkan pembolehubah persekitaran tertentu dalam arahan itu sendiri, menggunakan sintaks seperti "PATH=""$PATH;/path/to/sesu" " && ujian sesu".
-
Paksakan peruntukan pseudo-terminal: Gunakan parameter "get_pty" dalam exec_command, tetapi ketahui kemungkinan kesan sampingan.
Pertimbangan Tambahan
- Isu juga mungkin timbul dengan pembolehubah persekitaran seperti LD_LIBRARY_PATH dan lokasi objek kongsi.
- Rujuk sumber yang dipautkan untuk mendapatkan cerapan lanjut dan pendekatan alternatif.
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat \' not found\' dalam Paramiko untuk Pelaksanaan Perintah Unix?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!