Maison  >  Article  >  développement back-end  >  Comment résoudre l'erreur «  introuvable » dans Paramiko pour l'exécution de commandes Unix ?

Comment résoudre l'erreur «  introuvable » dans Paramiko pour l'exécution de commandes Unix ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-21 07:02:30359parcourir

How to Resolve introuvable" Erreur dans Paramiko pour l'exécution des commandes Unix ?" /> introuvable" Erreur dans Paramiko pour l'exécution des commandes Unix ?" />

Exécution de commandes Unix avec l'erreur " introuvable" dans Paramiko

La bibliothèque Paramiko de Python peut rencontrer des difficultés lors de la tentative d'exécution de certaines commandes Unix à l'aide de exec_command . Plus précisément, l'erreur « sh: : not found » peut survenir. Alors que des commandes simples comme "ls" peuvent s'exécuter avec succès, des commandes spéciales telles que "sesu" échouent.

Cause première

La fonction exec_command dans Paramiko ne s'exécute pas par défaut le shell en mode "login" ou allouer un pseudo-terminal. Cela se traduit par un ensemble de scripts de démarrage différent de celui des sessions interactives SSH classiques.

Solutions

Plusieurs solutions peuvent résoudre ce problème :

  • Utilisez un chemin complet : Spécifiez le chemin complet de la commande, par exemple "/bin/sesu test".
  • Définissez la variable d'environnement PATH : Assurez-vous que le PATH du système inclut le répertoire contenant l'exécutable.
  • Exécutez la commande via un shell de connexion : Utilisez le commutateur "--login", par exemple "bash --login -c "sesu test"".
  • Modifiez l'environnement de la commande : Définissez des variables d'environnement spécifiques dans la commande elle-même, en utilisant une syntaxe telle que "PATH=""$PATH;/path/to/sesu" " && sesu test".
  • Forcer l'allocation du pseudo-terminal : Utilisez le paramètre "get_pty" dans exec_command, mais soyez conscient des effets secondaires potentiels.

Considérations supplémentaires

  • Des problèmes peuvent également survenir avec des variables d'environnement telles que LD_LIBRARY_PATH et les emplacements d'objets partagés.
  • Référez-vous aux ressources liées pour plus d'informations et des approches alternatives.
Reportez-vous aux ressources liées pour plus d'informations et des approches alternatives.

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:
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