问题描述
我正在尝试在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@> 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