#python #r #anaconda #reticulate
#python #r #anaconda #сетчатый
Вопрос:
Я начинаю использовать пакет reticulate, чтобы иметь возможность использовать python с R. Код на python действительно работает, но при попытке получить что-то из кода на R он возвращает NULL.
Я думаю, проблема в том, что python, который я на самом деле использую, установлен с Anaconda, а RStudio — нет. Я использую Ubuntu 18.04.
Я пробовал простые тестовые коды, но все, что я пробовал, возвращает NULL, например:
x = 5
py$x #Returns NULL
Вот как на самом деле выглядит мой код.
library(reticulate)
def main():
string1 = "http://ine.es/jaxiT3/files/t/es/xlsx/"
string2 = ".xlsx?nocab=1"
lista = list()
for i in range(2854,2910):
url = string1 str(i) string2
if i != 2855 12 and i != 2855 32 and i != 2855 42 and i != 2855 43:
lista.append(url)
if __name__ == "__main__":
main()
py$lista #It returns NULL instead the list
Он должен возвращать список / вектор с URL-адресами, я знаю, что есть способ выполнить тот же код с R, но я хотел использовать reticulate. Спасибо.
Комментарии:
1. Что
reticulate::py_config()
возвращает, это ожидаемый каталог python? У меня самого были некоторые проблемы с этим, удалось решить ее, указав reticulate на другую установку python:reticulate::use_python("/path/to/desired_python")
2. Результатом был путь anaconda, по которому я его установил (/home/alejandro /anaconda3/bin / python), в любом случае я указал с помощью
py_config
, и ошибка изменилась. Теперь появляется ошибка в py_get_attr_impl(x, name, silent) : ошибка атрибута: модуль ‘ _main_ ‘ не имеет атрибута ‘lista’ , когда явно определен lista. Еще раз спасибо.3. Вы пробовали устанавливать
reticulate::use_condaenv()
?4. У меня это работает, спасибо 🙂
Ответ №1:
Можно использовать, reticulate::use_condaenv()
как говорит djfinnoy в комментариях, для решения проблемы и использования среды conda.