Hans
Hans

Reputation: 2910

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.

Upvotes: 77

Views: 96165

Answers (3)

Chris Burgoyne
Chris Burgoyne

Reputation: 1604

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

Upvotes: 147

asmeurer
asmeurer

Reputation: 91450

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:\Anaconda\python my-script.py.

Upvotes: 2

BKay
BKay

Reputation: 1457

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.

Upvotes: 2

Related Questions