Неисправность загрузки Python в RStudio с сеткой - PullRequest
0 голосов
/ 21 января 2020

Я пытаюсь запустить документ R Markdown, в котором используются фрагменты кода R и Python. Я на MacOS Catalina версии 10.15.2, R версия 3.6.2 и RStudio версия 1.2.5033. Я использую пакет reticulate версии 1.14.

which python на Терминале показывает /Users/dhirajkhanna/opt/anaconda3/bin/python, и то же самое заносится в мой файл .Renviron как RETICULATE_PYTHON=/Users/dhirajkhanna/opt/anaconda3/bin/python. Странно, когда я делаю Sys.which('python') в моей консоли RStudio, он показывает мне другой путь, а именно. /usr/bin/python. Когда я загружаю пакет reticulate, вывод py_config() будет:

python:         /usr/local/bin/python3
libpython:      /usr/local/opt/python/Frameworks/Python.framework/Versions/3.7/lib/python3.7/config-3.7m-darwin/libpython3.7.dylib
pythonhome:     /usr/local/Cellar/python/3.7.4/Frameworks/Python.framework/Versions/3.7:/usr/local/Cellar/python/3.7.4/Frameworks/Python.framework/Versions/3.7
version:        3.7.4 (default, Jul  9 2019, 18:13:23)  [Clang 10.0.1 (clang-1001.0.46.4)]
numpy:          /usr/local/lib/python3.7/site-packages/numpy
numpy_version:  1.16.4

python versions found: 
 /usr/bin/python3
 /usr/local/bin/python3
 /usr/bin/python
 /usr/local/bin/python
 /Users/dhirajkhanna/anaconda3/bin/python
 /Users/dhirajkhanna/.virtualenvs/object_recognition_detection/bin/python
 /Users/dhirajkhanna/.virtualenvs/object_recognition_detection1/bin/python
 /Users/dhirajkhanna/.virtualenvs/r-tensorflow/bin/python
 /Users/dhirajkhanna/venv/bin/python

Если я укажу, use_python('/Users/dhirajkhanna/opt/anaconda3/bin/python'), вывод py_config() будет:

python:         /Users/dhirajkhanna/opt/anaconda3/bin/python
libpython:      /Users/dhirajkhanna/opt/anaconda3/lib/libpython3.7m.dylib
pythonhome:     /Users/dhirajkhanna/opt/anaconda3:/Users/dhirajkhanna/opt/anaconda3
version:        3.7.5 (default, Oct 25 2019, 10:52:18)  [Clang 4.0.1 (tags/RELEASE_401/final)]
numpy:          /Users/dhirajkhanna/opt/anaconda3/lib/python3.7/site-packages/numpy
numpy_version:  1.17.3

python versions found: 
 /Users/dhirajkhanna/opt/anaconda3/bin/python
 /usr/bin/python3
 /usr/local/bin/python3
 /usr/bin/python
 /usr/local/bin/python
 /Users/dhirajkhanna/anaconda3/bin/python
 /Users/dhirajkhanna/.virtualenvs/object_recognition_detection/bin/python
 /Users/dhirajkhanna/.virtualenvs/object_recognition_detection1/bin/python
 /Users/dhirajkhanna/.virtualenvs/r-tensorflow/bin/python
 /Users/dhirajkhanna/venv/bin/python

Теперь, когда я пытаюсь загрузить Python пакетов в кодовом блоке Python, происходит сбой RStudio:

import pandas as pd
import matplotlib.pyplot as plt

Я получаю сообщение "R Session Aborted". Все это работало нормально, пока я не обновил R. Есть идеи, как это исправить?

Редактировать

При попытке сделать это в R я получаю ошибку сегментации:

> library(reticulate)
> repl_python()
Python 3.7.6 (/Users/dhirajkhanna/opt/anaconda3/bin/python)
Reticulate 1.14 REPL -- A Python interpreter in R.
>>> import pandas as pd

 *** caught segfault ***
address 0x0, cause 'memory not mapped'

Traceback:
 1: py_eval_impl(code, convert)
 2: py_eval("_", convert = FALSE)
 3: doTryCatch(return(expr), name, parentenv, handler)
 4: tryCatchOne(expr, names, parentenv, handlers[[1L]])
 5: tryCatchList(expr, classes, parentenv, handlers)
 6: tryCatch(py_eval("_", convert = FALSE), error = function(e) r_to_py(NULL))
 7: py_last_value()
 8: py_compile_eval(code)
 9: doTryCatch(return(expr), name, parentenv, handler)
10: tryCatchOne(expr, names, parentenv, handlers[[1L]])
11: tryCatchList(expr, classes, parentenv, handlers)
12: tryCatch(py_compile_eval(code), error = handle_error)
13: repl()
14: repl_python()

Possible actions:
1: abort (with core dump, if enabled)
2: normal R exit
3: exit R without saving workspace
4: exit R saving workspace
Selection: 

Я также пытался запустить другую версию Python (3.6) в virtualenv, но все равно не радости.

1 Ответ

0 голосов
/ 11 апреля 2020

Чистая установка Rcpp и reticulate решила проблему. Подробнее здесь .

...