установка rpy2 на виндовс 7

Я пытаюсь установить rpy2 на свой компьютер, но мне это не удалось.

Я скачал исходный пакет и попытался установить Rpy2 (rpy2-2.3.2) с помощью команды python setup.py install. Вот результат:

running install
running build
running build_py
running build_ext
"C:\PROGRA~1\R\R-215~1.2\bin\R" CMD config --ldflags
"C:\PROGRA~1\R\R-215~1.2\bin\R" CMD config --cppflags
"C:\PROGRA~1\R\R-215~1.2\bin\R" CMD config LAPACK_LIBS

returned an empty string.

"C:\PROGRA~1\R\R-215~1.2\bin\R" CMD config BLAS_LIBS

returned an empty string.

Configuration for R as a library:
    include_dirs: ('C:/PROGRA~1/R/R-215~1.2/include/i386', 'C:/PROGRA~1/R/R-215~1.2/include')
    libraries: ('R',)
    library_dirs: ('C:/PROGRA~1/R/R-215~1.2/bin/i386',)
    extra_link_args: ()
   # OSX-specific (included in extra_link_args)
    framework_dirs: ()
    framework: ()
building 'rpy2.rinterface._rinterface' extension
creating build\temp.win32-2.7
creating build\temp.win32-2.7\Release
creating build\temp.win32-2.7\Release\rpy
creating build\temp.win32-2.7\Release\rpy\rinterface
C:\Rtools\gcc-4.6.3\bin\gcc.exe -mcygwin -mdll -O -Wall -DWin32=1 -I.\rpy\rinterface -IC:\Python27\include -IC:\Python27\PC -IC:/PROGRA~1/R/R-215~1.2/include/i386 -IC:/PROGRA~1/R/R-215~1.2/include -c .\rpy\rinterface\_interface.c -o build\temp.win32-2.7\Release\.\rpy\rinterface\_rinterface.o
cc1.exe: error: unrecognized command line option '-mcygwin'
error: command 'gcc' failed with exit status 1

Я также пробовал с build install и easy_install безуспешно. У меня R 2.15.2, Python 2.7.2 и Windows 7 (32-разрядная версия).

Что я делаю неправильно?

PS. если я вставлю эту команду, результат будет таким:

предупреждение cygwin:

MS-DOS style path detected C:\PROGRA~1\R\R-215~1.2\bin\config.sh
Preferred POSIX equivalent is: /cygdrive/c/PROGRA~1/R/R-215~1.2/bin/config.sh
CYGWIN environment variable option "nodosfilewarning" turns off this warning.
Consult the user's guide for more details about POSIX paths:
    http://cygwin.com/cygwin-ug-net/using.html#using-pathnames

-LC:/PROGRA~1/R/R-215~1.2/bin/i386 -lR


person Luca Chiappi    schedule 14.02.2013    source источник
comment
Может быть, cywin замешан. Попробуйте удалить его из %PATH% при установке rpy2.   -  person lgautier    schedule 16.02.2013
comment
Может быть... но внутри %PATH% нет никаких признаков cygwin, что мне искать?   -  person Luca Chiappi    schedule 18.02.2013
comment
эээ... вы полностью изменили суть своего вопроса. Это означает, что все ответы и комментарии вдруг ничего не значат.   -  person lgautier    schedule 18.02.2013
comment
ммм... разница между до и сейчас в том, что я установил Rtools (по совету моего профессора).   -  person Luca Chiappi    schedule 18.02.2013
comment
Решение: не используйте Windows.   -  person wordsforthewise    schedule 13.11.2019


Ответы (8)


OK. Из предыдущего опыта я обнаружил, что не так много инструкций по установке rpy2 в Windows. Я понимаю, что это официально не поддерживается, но на самом деле это не так уж сложно. Через несколько шагов я покажу, что я сделал, и, возможно, другие смогут последовать этому примеру.

Эти инструкции, скорее всего, будут работать только для Python 2.7+ и R 3.2+, но, вероятно, будут работать и для R 3.0+. Я помещаю пути, которые я использовал в своей системе. Обязательно измените пути соответствующим образом:

Во-первых, убедитесь, что все предыдущие установки rpy2 УДАЛЕНЫ, прежде чем пытаться выполнить эти шаги (и, очевидно, иметь R 3.2+ перед установкой).

  1. Загрузите файл .whl для r2py с здесь
  2. Установите файл .whl с помощью pip install [put .whl filename here] (в командной строке) из каталога, в который был загружен файл.
  3. Добавьте путь, аналогичный C:\Program Files\R\R-3.2.0\bin, к вашей переменной окружения PATH.
  4. Создайте системную переменную R_HOME со значением, подобным: C:\Program Files\R\R-3.2.0
  5. Создайте системную переменную R_USER с вашим именем пользователя
  6. Создайте системную переменную R_LIBS_USER с путем к папке, в которой установлены/будут установлены внешние пакеты R.

Вот и все. Откройте командную строку и введите команду R. Это должно запустить сеанс R и отобразить информацию о версии.

Теперь откройте python и запустите эту строку, чтобы увидеть, сработало ли что-то или нет:

import rpy2.robjects as robjects 

Надеюсь, это поможет.

person pbreach    schedule 07.10.2015
comment
Это работает и для Windows 10 с R-3.3.1! Однако Rtools необходим. - person Robin Kramer; 30.11.2016
comment
Не подскажете, какой из бинарников rpy2 скачать? У меня R 3.3.2 и питон 3.5.2. Спасибо - person splinter; 05.02.2017
comment
@splinter Существует 4 разных двоичных файла для python 3.5 (cp35) и два для 64-битных (amd64) и 32-битных (win32) систем. Сокращая оттуда, вы можете выбрать последнюю версию rpy2 (в настоящее время 2.8.5). - person pbreach; 05.02.2017
comment
Спасибо @pbreach. Не могли бы вы также посоветовать, какую папку я должен указать для системной переменной R_LIBS_USER? Я только что установил R свежий. Это должна быть новая папка? Это должно быть где-то конкретно? - person splinter; 05.02.2017
comment
Я не совсем уверен, но вы можете попробовать установить пакет, а затем поискать, где он может быть. У меня больше не установлен rpy2, поэтому я не могу проверить - person pbreach; 05.02.2017
comment
Я пару часов пытался установить rpy2, играя с MSYS2, MinGW, переменными среды и т. д. Такое ощущение, что когда вы не можете что-то скомпилировать, это становится проблемой для вашего интеллекта (хотя на самом деле это просто ваше терпение) . Установка из этого .whl прошла успешно. Спасибо. - person OrangeSherbet; 10.12.2018

Я только что успешно установил rpy2 на 64-разрядную версию Windows 8.1 с помощью бинарного установщика с сайта http://www.lfd.uci.edu/~gohlke/pythonlibs/#rpy2. Обычно гораздо проще просто загрузить двоичный файл, чем пытаться скомпилировать пакет в Windows.

Кроме того, вы должны установить переменную окружения R_HOME (в моем случае C:\Program Files\R\R-3.1.1) перед установкой двоичного файла rpy2. В противном случае вы получите ошибку RuntimeError: R_HOME not defined. при попытке импортировать rpy2. (спасибо Ошибка R_HOME с rpy2)

Наконец, обязательно используйте %load_ext rpy2.ipython вместо %load_ext rmagic, если вы хотите использовать его в IPython. Это одна из новых функций в rpy2 версии 2.4.0.

(спасибо Записная книжка IPython и rmagic/rpy2: не удается найти модуль ri2py (OSX 10.8.5, python 2.7, R 3.1))

person joon    schedule 02.09.2014
comment
Привет, Какую версию Python вы использовали и была ли она для 32-битного или 64-битного Python? спасибо, Луис - person Luis Candanedo; 28.01.2016
comment
Привет, спасибо, мне удалось установить его. Однако это также влияет на работу RStudio. Я получаю ошибки пути. Вы испытали то же самое? Спасибо. Луис - person Luis Candanedo; 30.01.2016
comment
Нет, какую именно ошибку вы получаете с RStudio? Я не думаю, что что-то из этого повлияет на его работу - может быть, кроме R_HOME. Может быть, вы можете создать новый вопрос. - person joon; 01.02.2016
comment
У меня это работало из коробки, используя rpy2-2.9.5-cp37-cp37m-win_amd64.whl на Python 3.7.4, Windows 10 Pro. - person heisenBug; 02.03.2020

Мне также обычно не удавалось заставить Rpy2 работать в Windows. После нескольких часов работы с R2.15 и Rpy2 из предварительно скомпилированного бинарного файла 2.3. 4.win-amd64-py2.7, я выполнил этот вопрос и установил pyper вместо этого. Возможно, это сработает для вас, пока не будет поддержки. Я, например, хотел бы увидеть Rpy2 на ноутбуке Windows и IPython (%load_ext rmagic), но я просто не мог больше тратить на это время.

person Marcus Jones    schedule 18.03.2013
comment
С помощью профессора я смог установить rpy2 на компьютер в своем университете (с Fedora в качестве операционной системы) и теперь использую его для работы... Я предпочел rpy2 по сравнению с pyper, потому что есть много документации по рпи2. - person Luca Chiappi; 31.03.2013
comment
Rpy2 — это такая PITA для работы в Windows. Держитесь подальше от этого. Он не поддерживается должным образом. В конце концов я отказался от rpy2 в Jupyter для Windows и перешел на рабочий стол Windows Docker с Ubuntu, чтобы использовать магию ячеек R. Это позволяет избежать (слишком) многих нерешенных проблем с R в Windows. Зачем в R от 3 до 5 разных объектно-ориентированных систем? Разные хаки в разное время. Язык нужно переписать, чтобы он был более унифицированным и непротиворечивым. R нужен доброжелательный диктатор на всю жизнь, чтобы вернуть его к последовательности. - person Rich Lysakowski PhD; 14.03.2020

Следуя ответам выше, это то, что работает для меня

Система: Win 7-64, Python 3.6,

1. Установите R и необходимые вам пакеты

2. Установите R_HOME и R_USER в качестве переменной среды.

R_HOME = D:\Program Files\R\R-3.4.1
R_USER = Administrator 

Имя пользователя можно получить с помощью echo %username% в cmd

3. Загрузите rpy2 и установите его.

Загрузите rpy2 с http://www.lfd.uci.edu/~gohlke/pythonlibs/

Проверьте его путь и установите его в cmd, например pip install rpy2-2.8.6-cp36-cp36m-win_amd64.whl

4. Создайте блокнот и посмотрите, работает ли он

import rpy2.robjects as robjects

# test : evaluating R code
robjects.r('''
        # create a function `f`
        f <- function(r, verbose=FALSE) {
            if (verbose) {
                cat("I am calling f().\n")
            }
            2 * pi * r
        }
        # call the function `f` with argument value 3
        f(3)
        ''')
person cqcn1991    schedule 22.08.2017

EDIT Наконец-то мне удалось заставить его работать!!! Смотри ниже:

Я ломал голову, чтобы заставить это работать, и до сих пор не понял этого полностью. Что я узнал, так это то, что ошибка

'sh' не распознается как внутренняя или внешняя команда, исполняемая программа или пакетный файл

вызвано отсутствием mingw и Rtools (и других unix-подобных вспомогательных программ). (http://sourceforge.net/p/rpy/mailman/message/26549197/< /а>)

Я прошел этот этап, установив Rtools (http://cran.r-project.org/bin/windows/Rtools/) и mingw (http://sourceforge.net/projects/mingw-w64/) (Но так как проект mingw-w64 на sourceforge.net перемещается на mingw-w64.org, я предлагаю использовать mingw-w64.org)

Я прошел ошибку R.exe CMD config --ldflags, но застрял с

TypeError: объект типа «NoneType» не имеет len()

ошибка. Я все еще ищу решение!!

Надеюсь, это поможет кому-то в какой-то момент.

ОБНОВЛЕНИЕ: кажется, что есть несколько проблем, связанных с установкой. setup.py не может найти правильную версию R, и у компиляторов возникают проблемы.

Итак, как действовать:

  1. Загрузите исходный код с https://pypi.python.org/pypi/rpy2.
  2. Update your environment variables - In the user variables
    • PATH : append the path to ur R installation eg ;C:\Program Files\R\R-3.0.2\bin\x64
    • R_HOME : новая переменная с путем к R: C:\Program Files\R\R-3.0.2
    • R_USER : имя пользователя, например, john
  3. Установите Rtools (http://cran.r-project.org/bin/windows/Rtools/) и mingw (http://mingw-w64.org)
  4. #P12# <блочная цитата> #P13#
  5. В файле unixccompiler.py либо в python27/lib/distutils, либо в моем случае C:\Users(user_name)\AppData\Local\Continuum\Anaconda\Lib\distutils строка комментария 227

компилятор = os.path.basename(sysconfig.get_config_var("CC")) с # (#compiler = os.path.basename(sysconfig.get_config_var("CC")))

и добавить строку

компилятор = 'gcc'

Некоторые другие вещи - используйте командную строку cmd для установки. Использовать

установка сборки python setup.py

Установите Rtools и mingw, приняв все значения по умолчанию. В Rtools выберите

дополнительно для сборки 64-битной версии R

а также

отредактируйте системный ПУТЬ

Вот и все!! Приступил к работе..

Надеюсь это поможет!!

person Atesh    schedule 02.02.2015
comment
Проблемы с командой linux, не найденные для ничего, решаются с помощью среды Bash для Windows (Git Bash). - person OrangeSherbet; 10.12.2018

На Anaconda вы можете установить, используя:

conda install --channel https://conda.anaconda.org/Richarizardd rpy2

Альтернативно можно попробовать:

conda install -c r rpy2 

Можно также обратиться:

https://github.com/conda-forge/rpy2-feedstock
person Manoj Kumar    schedule 25.02.2016
comment
Теперь это возвращает следующее сообщение:PackageNotFoundError: Package not found: '' Dependency missing in current win-64 channels: - rpy2 -> r - person leerssej; 18.10.2018
comment
я думаю, вместо того, чтобы голосовать против, вы должны были исправить решение с помощью обновленного метода ... когда я написал его в 2016 году, это было правильно, но канал мог измениться или что-то еще в 2018 году ... не ожидайте, что что-то не так обновляйся... - person Manoj Kumar; 20.10.2018
comment
Я абсолютно согласен. Я не голосовал против. Я просто добавил примечание для справки. Я бы добавил обновленный ответ, если бы нашел способ решить эту проблему. - person leerssej; 20.10.2018

Сценарий установки setup.py сообщает, что при запуске возникла проблема

"C:\PROGRA~1\R\R-215~1.2\bin\R" CMD config --ldflags

Откройте терминал, вставьте эту команду, проверьте, в чем ошибка.

Поскольку вы отредактировали вопрос с выводом, проблема, похоже, заключается в том, что при запуске этой команды в качестве подпроцесса из python setup.py install возвращается пустая строка, а при запуске команды из терминала есть вывод. Я также читаю из вывода терминала, что задействован cygwin. Может проблема в этом?

person lgautier    schedule 15.02.2013
comment
Иногда трудно сказать. Вопрос что я делаю не так?. Рассказ о том, как определить, что не так, можно рассматривать как ответ, хотя и частичный. - person lgautier; 15.02.2013
comment
Я согласен, но я чувствую, что комментарий - это подходящий способ заставить ОП предоставить больше информации. - person Paul Hiemstra; 15.02.2013
comment
Как говорится, есть много способов содрать шкуру с кота. Здесь ответ можно отредактировать, чтобы в конце можно было красиво суммировать полные шаги от симптомов до решения проблемы (вместо того, чтобы искать сокровища в комментариях для следующего человека с той же проблемой). - person lgautier; 15.02.2013
comment
При выполнении R.exe CMD config --ldflags я получаю сообщение об ошибке 'sh' is not recognized as an internal or external command, operable program or batch file., что наводит меня на мысль, что R использует среду *nix и пытается запустить сценарий оболочки. Запуск из Cygwin bash не помогает. - person DavidJ; 27.02.2014

Ознакомьтесь с этим документом по установке, который я сделал по этой проблеме. https://www.academia.edu/12178754/rpy2Install

Это каталог, специфичный для установки ArcGIS, но его можно быстро портировать.

person Jason Matney    schedule 04.05.2015