RStudio обнаруживает установку Python pyenv, но я не могу запускать процессы Python

Oct 03 2020

Я пытаюсь запустить Python в RStudio. Я установил Python 3.8.5 через pyenv и создал виртуальную среду с pyenv virtualenv (которую я называю venv-Rstudio) в моей папке проекта RStudio. Основываясь на приведенных здесь инструкциях , я думаю, что мне удалось правильно указать RStudio, какую среду Python использовать:

>Sys.setenv(RETICULATE_PYTHON="/Users/my_username/.pyenv/versions/venv-Rstudio/bin/python")
> py_discover_config()
python:         /Users/my_username/.pyenv/versions/3.8.5/envs/venv-Rstudio/bin/python
libpython:      [NOT FOUND]
pythonhome:     /Users/my_username/.pyenv/versions/3.8.5:/Users/my_username/.pyenv/versions/3.8.5
version:        3.8.5 (default, Oct  1 2020, 21:50:37)  [Clang 12.0.0 (clang-1200.0.32.2)]
numpy:          /Users/my_username/.pyenv/versions/3.8.5/envs/venv-Rstudio/lib/python3.8/site-packages/numpy
numpy_version:  1.18.5

При попытке вызвать Python я получаю следующую ошибку:

> py_config()
Error: Python shared library not found, Python bindings not loaded.
Use reticulate::install_miniconda() if you'd like to install a Miniconda Python environment.

Я подозреваю, что это как-то связано с libpython: [NOT FOUND]увиденным выше, но я убедился, что libpython установлен в виртуальной среде venv-Rstudio:

(venv-Rstudio) my_username@MBP15 Rstudio % pip list
Package                Version
---------------------- ---------
...
Keras                  2.4.3
Keras-Preprocessing    1.1.2
libpython              0.2
Markdown               3.2.2
multidict              4.7.6
numpy                  1.18.5
...

Есть идеи, что мне может не хватать и как это исправить? Я использую macOS 10.15.7 Catalina, RStudio 1.3 с R версии 4.0.2.

Ответы

1 gaspanic Oct 03 2020 at 00:12

После публикации моего вопроса этот вопрос появился в Связанном списке, и этот ответ @nucholab решил мою проблему. Короче говоря, переустановка Python с pyenv с помощью следующей команды включает общие библиотеки:

env PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install 3.8.5 

После этого и воссоздания моей виртуальной среды (и для записи, установки numpy) загрузка Python в RStudio работает должным образом:

> py_config()
python:         /Users/my_username/.pyenv/versions/3.8.5/envs/venv-Rstudio/bin/python
libpython:      /Users/my_username/.pyenv/versions/3.8.5/lib/libpython3.8.dylib
pythonhome:     /Users/my_username/.pyenv/versions/3.8.5:/Users/andreas/.pyenv/versions/3.8.5
version:        3.8.5 (default, Oct  2 2020, 13:54:11)  [Clang 12.0.0 (clang-1200.0.32.2)]
numpy:          /Users/my_username/.pyenv/versions/3.8.5/envs/venv-Rstudio/lib/python3.8/site-packages/numpy
numpy_version:  1.19.2
tensorflow:     [NOT FOUND]

NOTE: Python version was forced by RETICULATE_PYTHON