Использование Python в R с сетчатым пакетом - Numpy не найден - PullRequest
0 голосов
/ 07 января 2019

Я начинаю использовать пакет reticulate, который позволяет использовать Python в среде R, и хотел выполнить кластеризацию со средним сдвигом с sklearn. Итак, вот моя попытка:

> library(reticulate)
> np <- import('numpy')
> sklearn <- import('sklearn')
> sklearn.MeanShift <- sklearn$cluster$MeanShift
> x <- matrix(rnorm(20), 10, 2)
> sklearn.MeanShift(x)
Error in py_call_impl(callable, dots$args, dots$keywords) : 
  Evaluation error: Required version of NumPy not available: installation of Numpy >= 1.6 not found.

Как видите, numpy не был найден при вызове функции sklearn, хотя она импортируется без проблем с reticulate::import. Я также проверил версию numpy, которую я имею в подсказке conda, и это 1.15.4. Также py_numpy_available() возвращает false. Мой reticulate конфиг:

python:         C:\Users\jakes\ANACON~1\python.exe
libpython:      C:/Users/jakes/ANACON~1/python37.dll
pythonhome:     C:\Users\jakes\ANACON~1
version:        3.7.1 (default, Oct 28 2018, 08:39:03) [MSC v.1912 64 bit (AMD64)]
Architecture:   64bit
numpy:           [NOT FOUND]
scikit-learn:   [NOT FOUND]

python versions found: 
 C:\Users\jakes\ANACON~1\python.exe
 C:\Users\jakes\Anaconda3\python.exe

Как я могу исправить эту проблему?

1 Ответ

0 голосов
/ 08 января 2019

Посмотрите на эту ветку для получения дополнительной информации.

Я получил ту же ошибку при попытке вызвать функцию из скрипта Python с R-объектами в качестве аргументов. По-видимому, это происходит потому, что Python не был добавлен в вашу переменную PATH (это было рекомендовано во время установки Anaconda), что не позволяет сетчатке находить пустышку при инициализации python. Добавление python в PATH в R до инициализации с помощью reticulate - вот что решило проблему для меня. Итак, из вышеупомянутой темы:

if(.Platform$OS.type == "windows") Sys.setenv(PATH= paste("C:/Anaconda3/Library/bin",Sys.getenv()["PATH"],sep=";"))
library(reticulate)
...