Comment résoudre l'erreur Unix CommandNotFound dans Paramiko Exec_command de Python ?

Barbara Streisand
Libérer: 2024-10-21 07:02:02
original
711 Les gens l'ont consulté

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

Erreur Unix CommandNotFound dans Paramiko Exec_command

Lors de l'exécution de certaines commandes Unix, telles que « sesu », via le module Paramiko exec_command de Python, vous pouvez rencontrez l'erreur "commande introuvable". Ce problème se pose car la méthode exec_command ne fonctionne généralement pas en mode « connexion », ce qui entraîne la création d'un ensemble différent de variables d'environnement et de scripts de démarrage par rapport à une session SSH interactive standard.

Solutions potentielles :

1. Spécifiez le chemin complet de la commande :

Utilisez le chemin complet de la commande dans votre argument exec_command. Par exemple, "/bin/sesu test" au lieu de "sesu test". Vous pouvez déterminer le chemin complet à l'aide de la commande « which » au sein d'une session SSH interactive.

2. Ajuster les scripts de démarrage :

Assurez-vous que les scripts de démarrage (par exemple, .bash_profile) définissent la variable d'environnement PATH de manière uniforme pour les sessions interactives et non interactives.

3. Utiliser le commutateur --login :

Exécutez la commande à l'aide d'un shell de connexion avec le commutateur "--login", tel que "bash --login -c "sesu test"."

4. Modifier les variables d'environnement dans la commande :

Modifiez les variables d'environnement directement dans la commande elle-même. Dans les systèmes Unix courants, la syntaxe suivante s'applique : "PATH="$PATH;/path/to/sesu" && sesu test."

5. Forcer l'allocation de pseudo-terminal (non recommandé) :

Activez l'allocation de pseudo-terminal pour le canal d'exécution à l'aide du paramètre get_pty=True. Cependant, cette approche peut conduire à des résultats inattendus.

Considérations supplémentaires :

  • Des problèmes similaires peuvent survenir avec la variable d'environnement LD_LIBRARY_PATH et l'emplacement des objets partagés.
  • Référez-vous aux ressources suivantes pour plus d'informations :

    • Différences de variables d'environnement lors de l'utilisation de Paramiko
    • Certaines commandes Unix échouent avec "... introuvable " lorsqu'il est exécuté via Java à l'aide de JSch

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!