¿Usa `rpy2` con los paquetes instalados para` R` en el entorno virtual de Conda?

He estado tratando de mantener mi entorno sin redundancia y limpio, así que hice un entorno R y borré todas las demás R s existentes en mi computadora.

Ese entorno se llama r-conda y se encuentra en:

/Users/jespinoz/anaconda/envs/r-conda/bin/R

Me di cuenta de que no tenía rpy2 instalado y, para instalarlo a través de conda, quería instalar una nueva versión de R y todos los r-essentials que no quiero ya que ya tengo un entorno R que funciona perfectamente.

Me di cuenta de que podía instalar rpy2 para el Python asociado dentro del entorno R conda :

 source activate r-conda pip install rpy2 source deactivate 

Pero no todos los caminos están alineados.

¿Cómo puedo hacer que rpy2 reconozca todos mis archivos y rutas asociados con R en mi entorno r-conda ?

No estoy encontrando los archivos correctamente cuando bash importar paquetes:

 os.environ['R_HOME'] = "/Users/jespinoz/anaconda/envs/r-conda/bin/R" from rpy2.robjects.packages import importr importr("dynamicTreeCut") --------------------------------------------------------------------------- ImportError Traceback (most recent call last)  in () 1 # os.environ['R_HOME'] = '/Users/jespinoz/anaconda/envs/r-conda/bin/' 2 os.environ['R_HOME'] = "/Users/jespinoz/anaconda/envs/r-conda/bin/R" ----> 3 from rpy2.robjects.packages import importr 4 importr("dynamicTreeCut") /Users/jespinoz/anaconda/lib/python3.6/site-packages/rpy2/robjects/__init__.py in () 14 import itertools 15 from datetime import datetime ---> 16 import rpy2.rinterface as rinterface 17 import rpy2.rlike.container as rlc 18 /Users/jespinoz/anaconda/lib/python3.6/site-packages/rpy2/rinterface/__init__.py in () 90 del(os) 91 ---> 92 from rpy2.rinterface._rinterface import (baseenv, 93 emptyenv, 94 endr, ImportError: dlopen(/Users/jespinoz/anaconda/lib/python3.6/site-packages/rpy2/rinterface/_rinterface.cpython-36m-darwin.so, 2): Library not loaded: @rpath/R/lib/libR.dylib Referenced from: /Users/jespinoz/anaconda/lib/python3.6/site-packages/rpy2/rinterface/_rinterface.cpython-36m-darwin.so Reason: image not found 

Se corrigió ese error agregando esto a mi ~/.bash_profile pero generó un nuevo error similar: lo intenté y el error cambió:

 export LD_LIBRARY_PATH="/Users/jespinoz/anaconda/envs/r-conda/lib/R/lib/:$LD_LIBRARY_PATH" >>> from rpy2.robjects.packages import importr Traceback (most recent call last): File "", line 1, in  File "/Users/jespinoz/anaconda/lib/python3.6/site-packages/rpy2/robjects/__init__.py", line 16, in  import rpy2.rinterface as rinterface File "/Users/jespinoz/anaconda/lib/python3.6/site-packages/rpy2/rinterface/__init__.py", line 92, in  from rpy2.rinterface._rinterface import (baseenv, ImportError: dlopen(/Users/jespinoz/anaconda/lib/python3.6/site-packages/rpy2/rinterface/_rinterface.cpython-36m-darwin.so, 2): Library not loaded: libicuuc.54.dylib Referenced from: /Users/jespinoz/anaconda/lib/python3.6/site-packages/rpy2/rinterface/_rinterface.cpython-36m-darwin.so Reason: image not found 

Así que intenté esto, luego obtuve el mismo error:

 export LD_LIBRARY_PATH="/Users/jespinoz/anaconda/envs/r-conda/lib/R/lib/:/Users/jespinoz/anaconda/pkgs/icu-54.1-0/lib/:$LD_LIBRARY_PATH" 

Si uso conda install rpy2 , quiere instalar un Python=3.5.2 , aunque mi versión predeterminada de mi entorno conda principal es Python=3.6 . @asmeurer dio una sugerencia para especificar Python=3.6 al instalar rpy2 en mi entorno r-conda , pero ahora se ve como un error conflictivo del paquete:

 (r-conda) jespinozlt-osx:~ jespinoz$ conda install rpy2 python=3.6 Fetching package metadata ............. Solving package specifications: . UnsatisfiableError: The following specifications were found to be in conflict: - python 3.6* - r-permute - rpy2 Use "conda info " to see the dependencies for each package 

Debes conda install rpy2 lugar de instalarlo por pip. Además, mantener el medio ambiente activado. Debe instalar python y cualquier paquete de Python que desee utilizar en el mismo entorno R, para que todo se haga en un solo entorno.