2017-02-09 33 views
1

Я пытался сохранить свою среду без излишней и чистой, поэтому я создал среду R и уничтожил все остальные существующие R s на своем компьютере.Используйте `rpy2` с пакетами, установленными для` R` в виртуальной среде conda?

Эта среда называется r-conda и находится в:

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

я понял, у меня не было rpy2 установлен и установить его через Конда он хотел установить новую версию R и все из r-essentials, который я не хочу, так как у меня уже есть отлично работающая среда R.

я понял, что могу установить rpy2 для Python связанного в R conda среде:

source activate r-conda 
pip install rpy2 
source deactivate 

Но не все пути выстроились

Как я могу сделать rpy2 признать все мои R связанных файлов и путей в моей r-conda среде?

Это не находя файлы правильно, когда я пытаюсь импортировать packges:

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) 
<ipython-input-29-8b0a88dfe12d> in <module>() 
     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 <module>() 
    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 <module>() 
    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 

Fixed эту ошибку, добавив в моей ~/.bash_profile, но вызвал подобную новую ошибку: Я дал эту попытку, и ошибка изменилась:

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 "<stdin>", line 1, in <module> 
    File "/Users/jespinoz/anaconda/lib/python3.6/site-packages/rpy2/robjects/__init__.py", line 16, in <module> 
    import rpy2.rinterface as rinterface 
    File "/Users/jespinoz/anaconda/lib/python3.6/site-packages/rpy2/rinterface/__init__.py", line 92, in <module> 
    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 

Так что я попытался это, то получил ту же ошибку:

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" 

Если я использую conda install rpy2, он хочет установить Python=3.5.2, хотя моя стандартная версия моей основной конд-среды - Python=3.6. @asmeurer дал предложение об уточнении Python=3.6 при установке rpy2 в моей r-conda среды, но теперь это выглядит как конфликтующая ошибка пакета:

(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 <package>" to see the dependencies for each package 

ответ

1

Вы должны conda install rpy2 вместо пипа установка. Кроме того, активируйте среду. Вам необходимо установить python и любые пакеты Python, которые вы хотите использовать в той же среде R, чтобы все было выполнено в одной среде.

+0

Когда я 'conda install rpy2' из своей среды r-conda', он хочет установить еще одну версию' python', хотя для этой среды по умолчанию используется 'python', это моя основная версия' python = 3.6'. Является ли мой единственный вариант либо установить 2 версии R, 2 версий Python, либо объединить их в одну среду? Я чувствую, что есть что-то, что я могу сделать с моими путями и переменными окружения, чтобы сообщить 'rpy2', где находятся мои файлы' R'. –

+0

Я не уверен, почему это так, но вы можете заставить его сохранить нужную версию python, включив ее в команду установки, например 'conda install rpy2 python = 3.6'. – asmeurer

+0

Я не знал, что вы можете это сделать. Приятно, спасибо! Хотя, похоже, что я получаю некоторые противоречивые ошибки (обновление форматирования вопроса b/c) ' –