rPython, использующий неправильную установку python на Mac OSX

Я установил Python 2.7.8 вместе с 2.7.5, который поставляется с OSX 10.9.4.

Теперь, как я могу указать rPython в питон 2.7.8?

Попытка № 1

Я модифицировал OSX .bash_profile следующим образом, чтобы указать все на более новую установку Python.

export PATH=/usr/local/Cellar/python/2.7.8/bin/:$PATH:usr/local/bin:

И теперь, когда я запускаю python из терминала, он корректно запускает более новую версию

mba:~ tommy$ which python
/usr/local/Cellar/python/2.7.8/bin//python

Тем не мение, rPython, все еще видит 2.7.5.

> library(rPython)
Loading required package: RJSONIO
> python.exec("import sys; print(sys.version)")
2.7.5 (default, Mar  9 2014, 22:15:05) 
[GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.0.68)]

Попытка № 2

Похоже, .bash_profile R вообще не привыкает... поэтому я попытался изменить PATH в R. Но все же не повезло.

> Sys.getenv("PATH")
[1] "/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin"
> Sys.setenv(PATH = "usr/local/Cellar/python/2.7.8/bin")
> library(rPython)
Loading required package: RJSONIO
> python.exec("import sys; print(sys.version)")
2.7.5 (default, Mar  9 2014, 22:15:05) 
[GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.0.68)]

Попытка № 3

Я пытался удалить и переустановить rPython пакетное мышление, возможно, он использовал версию Python, найденную при установке. Не повезло тоже.

Попытка № 4

Я попытался установить из источника, чтобы увидеть, если это что-нибудь... не повезло.

Обновить

Итак, похоже, проблема не в том, что связано с самим rPython.

http://cran.r-project.org/web/packages/rPython/INSTALL

Пакет rPython зависит от Python (>= 2.7).

Требуется как Python, так и его заголовки и библиотеки. Их можно найти в пакетах python и python-dev в дистрибутивах, подобных Debian.

В системах, где сосуществуют несколько версий Python, пользователь может выбрать версию Python для использования во время установки. По умолчанию пакет будет установлен с использованием версии Python, заданной

$ python --version

Когда я запускаю это в терминале..

mba:src tommy$ python --version
Python 2.7.8

Но когда я запускаю его в R...

> system("python --version")
Python 2.7.5

Так что проблема в том, что R не использует OSX .bash_profile, Мне нужно выяснить, как изменить PATH вне .bash_profileили используйте R для использования .bash_profile,

Что еще я могу попытаться получить rPython работать с 2.7.8?

5 ответов

Я устанавливаю следующие команды в RStudio, надеюсь, они помогут.

> system("python --version")
Python 2.7.10

> Sys.setenv(PATH = paste("/usr/local/bin", Sys.getenv("PATH"),sep=":"))

> system("python --version")
Python 2.7.11

Я знаю, что это старый вопрос, но я столкнулся с той же проблемой, что и OP, и это решение, которое я нашел, сработало.

Во-первых, я добавил RPYTHON_PYTHON_VERSION=3 к моему ~/.bash_profile, Вместо установки rPython с помощью install.packagesЯ скачал исходник из CRAN и установил из командной строки используя R CMD INSTALL, Это работало нормально и обнаружил python3 версия, которую я установил в моей системе.

Я наткнулся на этот пост, пытаясь заставить R использовать желаемую версию Python и нашел решение, которое работало для меня (используя Rstudio на OSX Yosemeti).

Вот Python, который использует мой терминал, и который я хочу найти в R:

$ which python
/usr/local/bin/python

В R, system('which python') производит /usr/bin/python, Я вижу, что это потому, что /usr/bin находится справа от /usr/local/bin в Sys.getenv('PATH'),

Я пытался изменить мой путь в ~/.Renviron или же ~/.Rprofile но это не решало проблему. Это потому что был другой Rprofile файл работает прямо перед запуском ядра.

Чтобы найти все Rprofile файлы в моей системе, я запустил эти команды:

cd /usr
sudo find . -name "*Rprofile*" -print

Один из файлов - R_HOME/library/base/R/Rprofile - содержит некоторый код, который говорит, что он имеет дело с конфликтами PATH в моей ОС. Я думаю, что он выбрал неправильный путь из возможных вариантов. Добавив следующую строку в конец этого файла, показал правильный путь в Rstudio после перезапуска моего ядра R:

.Internal(Sys.setenv("PATH", paste("/usr/local/bin", Sys.getenv("PATH"), sep=":")))

У меня сработало то, что я указал lib и версию в install.packages, вот так

install.packages("rPython",lib= "path_to_your_R/R/library/3.1", configure.vars= "RPYTHON_PYTHON_VERSION=3")

И это действительно установлено с Python версии, которая под 3.x

Вы можете взглянуть на файл rPython INSTALL (извините, возможно, мне следует сделать его более явным). В нем есть раздел о том, как установить rPython, используя желаемую версию Python, когда несколько сосуществуют. Это говорит:

В системах, где сосуществуют несколько версий Python, пользователь может выбрать версию Python для использования во время установки. По умолчанию пакет будет установлен с использованием версии Python, заданной

$ python --version

но можно выбрать другой, если переменная окружения RPYTHON_PYTHON_VERSION установлена ​​правильно.

Например, если он определен как

 RPYTHON_PYTHON_VERSION=3.2

он попытается использовать Python 3.2 (ищет python3.2 и python3.2-config в пути). Если установлено

 RPYTHON_PYTHON_VERSION=3

он будет установлен против "канонической" версии Python в системе в ветке 3.x.

Другие вопросы по тегам