Conda environments and .BAT files

Question:

I am setting up calls to python (Anaconda distribution) via BAT files and the windows task scheduler.

I’ve now used environments for the first time and was trying to set a .bat file up as below:

activate [my_env]
python my_script.py
deactivate

Unfortunately it appears that the second command does not get executed.

Asked By: Hans

||

Answers:

Are you sure you need a batch file? I think this should work.

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

When I made a simple file containing

print("Hello")

Which I called myprint.py and ran

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

This worked for me. You could also put this in a one line batch file.

Answered By: BKay

All activate does is put the environment in the front of the PATH. You can just call the absolute path to the python in the environment you want, like C:Anacondapython my-script.py.

Answered By: asmeurer

Use the ‘call’ command when activating/deactivating the environment.

call activate [my_env]
python my_script.py
call conda deactivate

See https://github.com/conda/conda/issues/794

Answered By: Chris Burgoyne
Categories: questions Tags: , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.