Ошибка установки RODB C или ODB C в экземпляре Sagemaker Jupyter NoteBook - PullRequest
0 голосов
/ 28 января 2020

Я пытался установить sh соединение с Teradata из экземпляра Sagemaker Jupyter Notebook. Я пытался сделать это так, как через R Studio. Но когда я пытаюсь установить пакет в экземпляре, я получаю ненулевую ошибку состояния выхода.

Я пытался установить следующие способы:

remotes::install_github() 

или

devtools::install_github()

, а также:

install.packages('odbc', repo="https://cran.rstudio.com/")

Я попробовал то же самое с RODB C, и я получаю те же предупреждения или ошибки.

Любые идеи о том, как я могу обойти эта проблема?

Заранее спасибо.

ОБНОВЛЕНИЕ: Если я запускаю эту строку кода:

devtools::install_github("r-dbi/odbc")`

Я получаю следующую ошибку (Это только выдержка) :

Error: Failed to install 'odbc' from GitHub:
  System command error, exit status: 1, stdout + stderr (last 10 lines):
E> ** testing if installed package can be loaded from temporary location
E> Error: package or namespace load failed for ‘odbc’ in dyn.load(file, DLLpath = DLLpath, ...):
E>  unable to load shared object '/tmp/RtmpBuMhbW/Rinst32846cdd20a9/00LOCK-odbc/00new/odbc/libs/odbc.so':
E>   libodbc.so.2: cannot open shared object file: No such file or directory
E> Error: loading failed
E> Execution halted
E> ERROR: loading failed
E> * removing ‘/tmp/RtmpBuMhbW/Rinst32846cdd20a9/odbc’
E>       -----------------------------------
E> ERROR: package installation failed
Traceback:

1 Ответ

0 голосов
/ 30 января 2020

Хорошо, после нескольких часов чтения документации AWS / Sagemaker / Conda / R я пришел к выводу, что я не знаю, как объяснить явления.

Тем не менее, я нашел обходной путь!

Итак, мы знаем, как мы можем устанавливать пакеты через терминал Jupyter или напрямую из ячейки в файле .ipynb. Тем не менее, если вы попытаетесь выполнить эти команды внутри ядра R, как если бы вы работали в терминале или в ядре Python, вы столкнетесь с ошибкой.

Кроме того, для некоторых людей, устанавливающих его в терминал или даже на ядро ​​Python, conda может просто установить пакет в другой среде. Да, оказывается, в вашем экземпляре Jupyter есть несколько сред.

Итак, чтобы добраться до сути, как я уже сказал, вы должны использовать команду conda install, а не команду pip, sudo или yum.

Сделай свою жизнь проще. Вот код, который вам нужно будет запустить в ячейке R Kernel, чтобы установить пакет непосредственно в правильную среду, если install.packages() и install_github() не работают:

system(command = 'conda install -c r packageName --yes')

Пример:

system(command = 'conda install -c r tidyverse --yes')

И все. После этого вы можете позвонить по номеру library() и возобновить рабочий процесс R. Как и вы.

Надеюсь, это поможет ребятам!

...