RStudio发现了python pyenv安装,但是我无法运行Python进程

问题描述

我正在尝试在RStudio中运行Python。我已经通过pyenv安装了Python 3.8.5,并在RStudio项目文件夹中使用pyenv virtualenv(我称为venv-Rstudio)创建了一个虚拟环境。根据{{​​3}}给出的说明,我认为我已经正确地向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
@H_502_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.
@H_502_5@

我怀疑这与上面看到的libpython: [NOT FOUND]有关,但是我已经确保venv-Rstudio虚拟环境中安装了libpython:

(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
...
@H_502_5@

任何想法,我可能会缺少什么以及如何解决?我正在运行带有R版本4.0.2的macOS 10.15.7 Catalina,RStudio 1.3。

解决方法

发布问题后,here出现在 Related 列表中,@ nucholab的this question解决了我的问题。简而言之,使用以下命令用pyenv重新安装Python即可启用可共享的库:

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

然后,重新创建我的虚拟环境(为了进行记录,安装numpy),可以按预期的那样在RStudio中加载Python:

> 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