2016-05-15 1 views
0

Espérons que cela devrait être simple. L'environnement Python fonctionne correctement si j'ouvre PowerShell v3 manuellement. Je peux vérifier la version et exécuter des scripts externes, etc. Mais dès que j'ouvre powershell.exe via subprocess.Popen à partir d'un script python d'une autre application, python ne s'exécute tout simplement pas; "Le terme 'Python' n'est pas reconnu comme le nom d'une cmdlet, fonction, fichier script ou programme utilisable ... etc"Python non accessible dans Powerhell v3 lorsqu'il est ouvert avec Popen

J'ai vérifié mes chemins d'environnement à plusieurs reprises et python fonctionne bien sur le système en général .

Quelqu'un at-il une idée de ce que cela pourrait causer?

subprocess.Popen(["powershell.exe", '-ExecutionPolicy', 'RemoteSigned', "path to PS1_script_with python command"]) 

Mon fichier PS1 ressemble à ceci:

cd C:\Users\David\Geeknote\geeknote-master\geeknote 
python gnsync.py --path "C:\Users\David\Desktop\C4DtoEvernote", --mask "*.nfo", --notebook "Python Logs" 
function Pause{Read-Host 'You have successfully synced your C4D Annotations to Evernote using gnsync. 
Please press Enter to continue...' | Out-Null} 
Pause{} 

Répondre

1

Il semble (pour une raison quelconque) votre $PATH n'est pas lu ou honoré par le processus; et donc python ne peut pas être trouvé.

Vous pouvez:

  1. Mettre en place le chemin avec $env:Path = "C:\Python27:C:\Python27\Scripts";

  2. Configuration du chemin à l'aide d'un profil de console personnalisée (un fichier .ps1) et passant avec -PSConsoleFile.

  3. L'option la plus simple, passez le chemin complet vers l'exécutable Python dans votre fichier de commande C:\Python27\python.exe gsync.py ...

Je voudrais essayer # 3, puis voir si vous avez besoin d'autres options.

Ajustez les chemins appropriés - en particulier si plusieurs interprètes Python sont installés.

+0

merci oui # 3 fonctionne;) se sentir un peu faible Je n'ai pas pensé à ça mais je me cognais évidemment la tête contre le mur. En ce qui concerne # 1, la syntaxe est-elle complètement correcte ou devrait-il y avoir un point-virgule? J'ai essayé, mais il semblait avoir supprimé certaines commandes de chemin que j'avais auparavant. Cela n'a pas résolu le problème. # 2 Je ne sais pas encore comment mettre en œuvre. – dflamholc