70 votes

Comment faire en sorte que les fichiers batch s'exécutent dans l'invite d'anaconda ?

Après avoir installé anaconda3 sous Windows, je peux exécuter des commandes python à partir de l'invite anaconda, mais pas à partir de l'invite de commande Windows. Je voudrais créer un raccourci sur le bureau pour activer mon environnement et exécuter spyder à partir de celui-ci. Auparavant, je le faisais avec un .bat mais maintenant que je ne peux pas exécuter de commandes python à partir de cmd.exe ça ne marche pas.

Existe-t-il un autre moyen d'exécuter des fichiers batch pour l'invite anaconda ? Je sais que je pourrais simplement modifier mon PATH pour obtenir cmd.exe pour exécuter des commandes python, mais j'aimerais éviter cela si possible.

5 votes

Je crois que tout ce que fait l'invite d'Anaconda, c'est d'ouvrir CMD et d'exécuter <anaconda_dir>/Scripts/activate.bat <anaconda_dir> comme première commande, donc vous pourriez essayer de mettre cela en haut de votre script.

0 votes

Merci, ça a marché, c'était facile !

0 votes

Super ! Je vais la déplacer vers une réponse afin que vous puissiez marquer votre question comme ayant reçu une réponse.

75voto

Jeremy McGibbon Points 2047

Je crois que tout ce que fait le prompt d'Anaconda est d'ouvrir CMD et de lancer un fichier batch. Faites la première commande de votre script :

call <anaconda_dir>/Scripts/activate.bat <anaconda_dir>

3 votes

Et peut-être utiliser call dans votre fichier batch, pour qu'il ne se termine pas après la première commande ?

2 votes

J'ai constaté que mon invite se fermait même avec call J'ai ajouté cmd /k à la fin du fichier

0 votes

La solution est un peu insatisfaisante, car le répertoire anaconda est différent sur chaque système. Il serait préférable d'avoir un shebang comme sous Linux qui indique au script de ne pas être appelé avec cmd.exe mais avec anaconda prompt.

45voto

N4v Points 393

En prolongeant la réponse de Jeremy :

Vous devez utiliser call pour le script "activate.bat" ainsi que pour toutes les commandes ultérieures liées à Anaconda/Python. Sinon, l'invite quittera immédiatement après l'exécution des commandes, même si vous utilisez une balise pause déclaration. Veuillez consulter l'exemple ci-dessous :

set root=C:\Users\john.doe\AppData\Local\Continuum\anaconda3

call %root%\Scripts\activate.bat %root%

call conda list pandas

pause

22voto

JedB Points 53

Grâce à ce fil de discussion, j'ai résolu le problème que je rencontrais pour qu'un fichier batch Windows ouvre l'invite Ananconda et exécute ensuite un code python.

Voici le fichier batch :

@echo on
call C:\ProgramData\Anaconda3\Scripts\activate.bat
C:\ProgramData\Anaconda3\python.exe "D:\Documents\PythonCode\TFLAPI\V1.py"

0 votes

MERCI BEAUCOUP.

1 votes

Voici la solution complète avec un exemple concret.

17voto

ivan_pozdeev Points 2233

Ajouter

call "<anaconda_dir>\Scripts\activate.bat"

au début de votre script (il n'a pas besoin d'un argument, et il active la fonction base par défaut).

Notez qu'après cette ligne, vous pouvez faire usage de la fonction CONDA_ envois !

1voto

Bill Moore Points 1870

Version de Powershell :

$qtconsole="C:\Users\<YourUserName>\.anaconda\navigator\scripts\qtconsole.bat"
start-process $qtconsole -WindowStyle Hidden

Note : ce script ne lancera qu'une seule instance de la qtconsole à la fois en raison des limitations DLL de la bibliothèque QT GUI de Linux ne supportant qu'une seule instance du même exe fonctionnant en même temps. C'est probablement pourquoi ils utilisent "Anaconda Navigator" pour lancer les programmes QtConsole afin de contourner cette restriction.

0 votes

Installez "active state python 3.5" au lieu d'anaconda. assurez-vous qu'il est dans votre chemin puis tapez : "PS C:\user\dfsdsdf > jupyter notebook" vous pouvez vous habituer à utiliser les notebooks au lieu de qtconsole pour les petits calculs

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X