RStudio descubre la instalación de Python pyenv, pero no puedo ejecutar los procesos de Python
Estoy intentando ejecutar Python en RStudio. Instalé Python 3.8.5 a través de pyenv y creé un entorno virtual con pyenv virtualenv (al que llamo venv-Rstudio) en mi carpeta de proyecto RStudio. Según las instrucciones que se dan aquí , creo que he logrado indicar correctamente a RStudio qué entorno de Python usar:
>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
Cuando intento llamar a Python, aparece el siguiente error:
> 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.
Sospecho que esto tiene algo que ver con lo libpython: [NOT FOUND]visto arriba, pero me he asegurado de que libpython esté instalado en el entorno virtual 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
...
¿Alguna idea de lo que podría estar perdiendo y cómo solucionarlo? Estoy ejecutando macOS 10.15.7 Catalina, RStudio 1.3 con R versión 4.0.2.
Respuestas
Después de publicar mi pregunta, esta pregunta apareció en la lista relacionada , y esta respuesta de @nucholab resolvió mi problema. En resumen, reinstalar Python con pyenv usando el siguiente comando habilita bibliotecas que se pueden compartir:
env PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install 3.8.5
Después de eso y volver a crear mi entorno virtual (y para el registro, instalar numpy), cargar Python en RStudio funciona como se esperaba:
> 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