Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Can't figure out how to use conda environment after reticulate::use_condaenv(path)

I created a conda environment using the terminal:

conda create --name pathfinder_example_proj_env python=3.6 feather-format=0.4.0 statsmodels=0.9.0

I also created a trivial python script

import feather
import pandas as pd
import statsmodels.api as sm

print("Done")

In an R notebook, I now want to run that script from within the conda environment I created earlier.

I tried:

reticulate::use_condaenv("pathfinder_example_proj_env", required = TRUE)
reticulate::source_python("../python/python_model.py")

But I get the following error:

Error in py_run_file_impl(file, local, convert) : ImportError: No module named feather

When I check the version of python reticulate is using I get:

reticulate::py_config()

python:         /usr/bin/python
libpython:      /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/config/libpython2.7.dylib
pythonhome:     /System/Library/Frameworks/Python.framework/Versions/2.7:/System/Library/Frameworks/Python.framework/Versions/2.7
version:        2.7.10 (default, Oct  6 2017, 22:29:07)  [GCC 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.31)]
numpy:          /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/numpy
numpy_version:  1.8.0

python versions found: 
 /usr/bin/python
 /Users/bradcannell/anaconda/bin/python
 /Users/bradcannell/.virtualenvs/bradcannell-_MDC9FPE/bin/python

I checked for available versions using py_discover_config()

reticulate::py_discover_config()

python:         /usr/bin/python
libpython:      /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/config/libpython2.7.dylib
pythonhome:     /System/Library/Frameworks/Python.framework/Versions/2.7:/System/Library/Frameworks/Python.framework/Versions/2.7
version:        2.7.10 (default, Oct  6 2017, 22:29:07)  [GCC 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.31)]
numpy:          /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/numpy
numpy_version:  1.8.0

python versions found: 
 /usr/bin/python
 /Users/bradcannell/anaconda/bin/python
 /Users/bradcannell/.virtualenvs/bradcannell-_MDC9FPE/bin/python
 /Users/bradcannell/anaconda/envs/pathfinder_example_proj_env/bin/python

And as you can see, the virtual environment is listed. I'm just not sure how to use it.

I've read all the articles on the reticulate website:
https://rstudio.github.io/reticulate/index.html

I also found a couple of threads on Github:
https://github.com/rstudio/reticulate/issues/1
https://github.com/rstudio/reticulate/issues/292

like image 762
Brad Cannell Avatar asked Jul 29 '18 22:07

Brad Cannell


People also ask

How can we activate conda environment using path?

To activate your Conda environment, type source activate <yourenvironmentname> . Note that conda activate will not work on Discovery with this version. To install a specific package, type conda install -n <yourenvironmentname> [package] . To deactivate the current, active Conda environment, type conda deactivate .

How do you get out of the environment conda?

Type: conda activate myenv To exit an environment, you'd enter conda deactivate.


2 Answers

This works for me;

library(reticulate)

myenvs=conda_list()

envname=myenvs$name[2]
use_condaenv(envname, required = TRUE)
# or
use_condaenv("r-miniconda", required = TRUE)

restart r session is needed sometimes.

like image 72
user14460987 Avatar answered Sep 30 '22 04:09

user14460987


I found the solution here: https://community.rstudio.com/t/reticulate-source-python-and-exec-problems/7386/6

After installing the development version of reticulate (devtools::install_github("rstudio/reticulate") reticulate uses the conda environment as expected.

Leaving this post up in case anyone else runs into this issue.

like image 41
Brad Cannell Avatar answered Sep 30 '22 04:09

Brad Cannell