Conda environments and .BAT files

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.


Solution 1:

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

Solution 2:

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.