首頁  >  文章  >  後端開發  >  如何解決 Python 的 Paramiko Exec_command 中的 Unix CommandNotFound 錯誤?

如何解決 Python 的 Paramiko Exec_command 中的 Unix CommandNotFound 錯誤?

Barbara Streisand
Barbara Streisand原創
2024-10-21 07:02:02711瀏覽

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

Paramiko Exec_command 中出現Unix CommandNotFound 錯誤

透過Python 的Paramiko exec_command 命令您可能會遇到以下問題:遇到「命令未找到」錯誤。出現此問題的原因是 exec_command 方法通常不在「登入」模式下執行,導致與標準互動式 SSH 會話相比,會取得一組不同的環境變數和啟動腳本。

潛在解:

1。指定指令的完整路徑:

在 exec_command 參數中使用指令的完整路徑。例如,“/bin/sesu test”而不是“sesu test”。您可以在互動式 SSH 會話中使用「which」命令來確定完整路徑。

2.調整啟動腳本:

確保啟動腳本(例如 .bash_profile)為互動式和非互動式會話統一設定 PATH 環境變數。

3.利用--login 開關:

使用「--login」開關的登入shell 執行指令,例如「bash --login -c “ sesu test」。」

4。在指令中修改環境變數:

直接在指令本身內修改環境變數。在常見的Unix 系統中,適用以下語法:「PATH="$PATH;/path/to/sesu" && sesu test.」

5.強制偽終端分配(不建議):

使用get_pty=True 參數為exec 通道啟用偽終端分配。但是,這種方法可能會導致意外結果。

其他注意事項:

  • LD_LIBRARY_PATH 環境變數和共享物件的位置可能會出現類似問題。
  • 請參閱以下資源以取得更多資訊:

    • 使用Paramiko 時的環境變數差異
    • 某些Unix 指令失敗並顯示「. ..未找到” " 使用JSch
透過Java 執行時

以上是如何解決 Python 的 Paramiko Exec_command 中的 Unix CommandNotFound 錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn