Bagaimana untuk Menyelesaikan Ralat Unix CommandNotFound dalam Paramiko Exec_command Python?

Barbara Streisand
Lepaskan: 2024-10-21 07:02:02
asal
707 orang telah melayarinya

How to Resolve Unix CommandNotFound Error in Python's Paramiko Exec_command?

Ralat Unix CommandNotFound dalam Paramiko Exec_command

Apabila melaksanakan arahan Unix tertentu, seperti 'sesu,' melalui modul Paramiko exec_command Python, anda boleh menghadapi ralat "perintah tidak dijumpai". Isu ini timbul kerana kaedah exec_command biasanya tidak beroperasi dalam mod "log masuk", menyebabkan set pembolehubah persekitaran dan skrip permulaan yang berbeza diperoleh berbanding sesi SSH interaktif standard.

Penyelesaian Potensi:

1. Tentukan Laluan Penuh untuk Perintah:

Gunakan laluan penuh untuk arahan dalam argumen exec_command anda. Sebagai contoh, "ujian/bin/sesu" dan bukannya "ujian sesu." Anda boleh menentukan laluan penuh menggunakan arahan "mana" dalam sesi SSH interaktif.

2. Laraskan Skrip Permulaan:

Pastikan skrip permulaan (cth., .bash_profile) menetapkan pembolehubah persekitaran PATH secara seragam untuk kedua-dua sesi interaktif dan bukan interaktif.

3. Gunakan --login Suis:

Jalankan arahan menggunakan cangkerang log masuk dengan suis "--login", seperti "bash --login -c "sesu test"."

4. Ubah Suai Pembolehubah Persekitaran dalam Perintah:

Ubah suai pembolehubah persekitaran secara langsung dalam arahan itu sendiri. Dalam sistem Unix biasa, sintaks berikut digunakan: "PATH="$PATH;/path/to/sesu" && ujian sesu."

5. Paksa Peruntukan Terminal Pseudo (Tidak Disyorkan):

Dayakan peruntukan terminal pseudo untuk saluran exec menggunakan parameter get_pty=True. Walau bagaimanapun, pendekatan ini boleh membawa kepada hasil yang tidak dijangka.

Pertimbangan Tambahan:

  • Isu yang sama mungkin berlaku dengan pembolehubah persekitaran LD_LIBRARY_PATH dan lokasi objek kongsi.
  • Rujuk sumber berikut untuk maklumat lanjut:

    • Perbezaan pembolehubah persekitaran apabila menggunakan Paramiko
    • Arahan Unix tertentu gagal dengan "... tidak dijumpai " apabila dilaksanakan melalui Java menggunakan JSch

Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat Unix CommandNotFound dalam Paramiko Exec_command Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!