Как импортировать пакеты Python с помощью Reticulate в R

Я изучаю python около года. Я только что скачал R, чтобы попробовать использовать Python с Reticulate. У меня все мои пакеты python установлены в базовой среде anaconda с именем base. У меня все работает, кроме панд. Это самая странная вещь.

Вот мой код:

{r}
library(reticulate)
use_condaenv(“base”)
{python}
import numpy as np
import matplotlib.pyplot as plt

Это прекрасно работает, и я могу использовать оба пакета в RStudio. Однако, когда я пытаюсь import pandas as pd, я получаю сообщение об ошибке

ImportError: No Module named pandas...

У меня определенно есть Pandas pip, установленный в этой базовой среде вместе с двумя другими пакетами. Чтобы быть уверенным, я дважды проверил, снова запустив pip install для всех 3. Почему панды не работают? Это так расстраивает! FWIW: seaborn (и другие пакеты) тоже не работает и тоже устанавливается.


person bismo    schedule 24.08.2020    source источник
comment
Может быть, у Вас другая установка Python? Вы используете R, установленный из Anaconda?   -  person ipj    schedule 25.08.2020
comment
Я не использую R, установленный из Anaconda. Может ли это быть проблемой?   -  person bismo    schedule 25.08.2020
comment
Вы пытались импортировать модуль Python, используя import? Например, library(reticulate) os <- import("os") os$listdir(".") Как и в ответе @Eiri, проблема может заключаться в нескольких питонах.   -  person ipj    schedule 25.08.2020
comment
если вы установили conda, я настоятельно рекомендую вам установить пакеты с этим (например, conda install pandas)   -  person Paul H    schedule 25.08.2020
comment
@PaulH Спасибо за ответ. Виртуальные среды кажутся очень, очень запутанными. В чем разница между кондой и пипом? Учебник, который я использовал, когда впервые загрузил python, предложил pip установить все пакеты.   -  person bismo    schedule 25.08.2020
comment
pip означает пакеты pip install (python), вот и все. это все, что он делает. conda — это полноценный менеджер пакетов и виртуальных сред, который может устанавливать что угодно, от postres до R и пакетов Python.   -  person Paul H    schedule 25.08.2020
comment
@bismo вот краткое изложение, которое я написал для друга, который перешел на python/conda из R: .com/phobson/8a4808bf6879f5f2cfb4   -  person Paul H    schedule 25.08.2020


Ответы (2)


Возможно, вы установили несколько версий Python и используете другую, если она появляется при запуске pip freeze. Я предлагаю установить virtualenv в папку вашего проекта, чтобы избежать конфликта с другими пакетами.

pip install virtualenv
virtualenv venv
source venv/bin/activate

А затем установите панд внутри.

pip install pandas

Вы также можете попробовать установить pandas с помощью pip3.

person Eiri    schedule 24.08.2020
comment
Как узнать, установлено ли у меня несколько питонов? - person bismo; 25.08.2020
comment
@бисмо беги ls -l /usr/bin/python* - person Eiri; 25.08.2020
comment
Я запустил его, но понятия не имею, что это значит. Он вернул несколько строк, 3 из которых заканчиваются на /Python.framework/Versions/2.7/bin/python2.7, /Python.framework/Versions/2.7/bin/python2.7-config и Python.framework/Versions/2.7/bin/pythonw2.7. Означает ли это, что у меня есть (как минимум) 3 разных питона? Как это вообще происходит? - person bismo; 25.08.2020
comment
@bismo Нет. Многие из них представляют собой символические ссылки и файлы конфигурации. У тебя были и другие версии? И запустите pip -V, чтобы проверить, с какой версией Python связана pip. Это должна быть та же версия, что и у вас. - person Eiri; 25.08.2020
comment
Это были единственные 3 версии, которые я получил. Когда я запустил pip -V, он вернул python 3.7, который я скачал изначально. - person bismo; 25.08.2020
comment
Ну, вы, вероятно, работаете с версией 2.7. Подобные проблемы случаются часто, когда окружающая среда грязная. Вы можете установить Anaconda и запустить conda create -n envname python=3.6 (или любую версию или имя окружения, которое вы хотите.) И активировать его с помощью conda activate envname. Просто установите с помощью pip. В вашей командной строке должно быть написано (envname). Запустите conda deactivate, чтобы деактивировать среду, в которой вы находитесь. - person Eiri; 25.08.2020

Вы можете заглянуть в этот источник:

Надеюсь, это поможет: Интерфейс R для Python

Импорт модуля Python

Источник: R/python.R

Импортируйте указанный модуль Python для вызова из R.

import(module, as = NULL, convert = TRUE, delay_load = FALSE) 
import_main(convert = TRUE)
import_builtins(convert = TRUE)
import_from_path(module, path = ".", convert = TRUE)

Аргументы

модуль

Имя модуля

как

Псевдоним для имени модуля (влияет на имена классов R). Обратите внимание, что это расширенный параметр, который обычно следует использовать только при разработке пакетов (поскольку он влияет на имя импортируемого класса S3 и, следовательно, может мешать диспетчеризации методов S3).

конвертировать

TRUE, чтобы автоматически преобразовывать объекты Python в их эквивалент R. Если вы передали значение FALSE, вы можете выполнить преобразование вручную с помощью функции py_to_r().

задержка_загрузки

TRUE, чтобы отложить загрузку модуля до его первого использования. FALSE, чтобы загрузить модуль немедленно. Если указана функция, она будет вызвана после загрузки модуля. Если предоставлен список, содержащий элементы on_load() и on_error(e), то on_load() будет вызываться при успешной загрузке и on_error(e) при возникновении ошибки.

путь

Путь для импорта из

Значение

Модуль Python

Подробнее

Функция import_from_path импортирует модуль Python из произвольного пути файловой системы (каталог указанного скрипта Python автоматически добавляется в sys.path).

Примеры

if (FALSE) 
{ 
    main <- import_main() 
    sys <- import("sys") 
 }
person SUNEEL KAUSHIK S    schedule 24.08.2020
comment
ответы только для ссылок не подходят для этого веб-сайта. пожалуйста, суммируйте соответствующую информацию, найденную там. - person Paul H; 25.08.2020