2014-07-10 4 views
10

Ich richte Anrufe für Python (Anaconda-Verteilung) über BAT-Dateien und den Windows Task Scheduler.Conda-Umgebungen und .BAT-Dateien

Ich habe jetzt Umgebungen zum ersten Mal verwendet, und versuche, eine .bat Datei wie unten einzurichten:

activate [my_env] 
python my_script.py 
deactivate 

Leider scheint es, dass der zweite Befehl nicht ausgeführt werden soll.

Antwort

2

Sind Sie sicher, dass Sie eine Batchdatei benötigen? Ich denke, das sollte funktionieren.

cmd "/c activate [my_env] && python my_script.py && deactivate" 

Wenn habe ich eine einfache Datei

print("Hello") 

Was ich myprint.py enthält genannt und lief

cmd "/c activate anaconda33 && python myprint.py && deactivate" 

Das ist für mich gearbeitet. Sie könnten dies auch in eine einzeilige Batch-Datei schreiben.

+0

Das hat nicht funktioniert, aber in dem env-Verzeichnis Python Aufruf scheint die Aufgabe wie 'C zu tun: \ Anaconda \ ENVs \ linkdex_py27 \ python.exe script.python' – Hans

+1

Have Sie haben das anaconda-Binärverzeichnis zu Ihrer PATH-Umgebungsvariablen hinzugefügt? – BKay

+0

Ja, habe ich. Ich habe das oben wieder getestet und festgestellt, dass es für mich funktionierte, wenn ich die script.py Zeile auf den voll qualifizierten Pfad änderte - obwohl es in dem Verzeichnis war, in dem ich anfing zu arbeiten. – Hans

0

Alle aktivieren bewirkt, dass die Umgebung in den Vordergrund des PATH gesetzt wird. Sie können den absoluten Pfad zum python in der gewünschten Umgebung aufrufen, z. B. C:\Anaconda\python my-script.py.

+0

Das ist wahr, aber Sie sollten sehr sein vorsichtig dabei, weil activate.bat auch kritische DLLs auf PATH setzen kann. – msarahan

+0

Dies funktioniert sogar für vom Benutzer installierte Einstiegspunkte und Skripte - sie werden auf dem Python-Interpreter der Umgebung ausgeführt und verwenden ihre 'site-packages' usw. – j08lue