Maison > développement back-end > Tutoriel Python > Comment résoudre l'erreur Unix CommandNotFound dans Paramiko Exec_command de Python ?

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

Barbara Streisand
Libérer: 2024-10-21 07:02:02
original
901 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!

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