Search code examples
pythonvirtualenvanacondauwsgiminiconda

Use anaconda environment without activate? (e.g. in Crontab)


Being reading this

http://conda.pydata.org/docs/using/envs.html

Is it possible to run a conda python directly without having to source activate xxx?

In VirtualEnv, you can find the exact location of the python executable and run something like this

./path/to/my/venv/bin/python xxx.py

Then xxx.py will be executed with environment on. It's handy to write one-linders in Crontab.

Could I do the same with anaconda/miniconda environments?

I've been trying this on Centos 6.5, system has python 2.5 which is too old.

I installed python 2.7 with miniconda, now I pip installed uWSGI, when executing it directly says

Could not find platform independent libraries <prefix>
Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
ImportError: No module named site

But when execute it under conda env it works as expected.


Solution

  • If conda is on your path:

    source activate <env name> && python xxx.py && source deactivate

    If conda isn't on your path but is installed:

    source /path/to/conda/bin/activate /path/to/desired/env_name/ && python xxx.py && source deactivate