【问题标题】:R reticulate unable to find installed python libraryR网状无法找到已安装的python库
【发布时间】:2018-06-07 18:08:04
【问题描述】:

我正在冒险在 R 中使用 Reticulate 并且在安装软件包时遇到了麻烦,特别是 psycopg2,但我也尝试安装 twisted,结果相同。

在 R 中加载 reticulate 后,我再次检查以确保我的包已安装:

> conda_install(envname = "r-reticulate", packages="psycopg2")
Solving environment: ...working... done

# All requested packages already installed.

看起来不错。所以我将我的 condaenv 设置为 r-reticulate 只是为了确定。文档说我不应该这样做,但它不应该受到伤害:

> use_condaenv( "r-reticulate")

然后我尝试导入psycopg2

> psycopg2 <- import('psycopg2')
Error in py_module_import(module, convert = convert) : 
  ImportError: No module named psycopg2

如果我以同样的方式安装twisted,我会得到同样的错误:

> twisted <- import('twisted')
Error in py_module_import(module, convert = convert) : 
  ImportError: No module named twisted

那么,我在这里做错了什么?

下面是conda_listpy_config 的输出...我期待py_config 在我的r-reticulate 环境中向我显示python exe 的路径。但是我没有任何东西可以与之比较,所以我的期望可能是错误的。

> conda_list()
          name                                                                              python
1     Anaconda                     C:\\Users\\jal\\AppData\\Local\\Continuum\\Anaconda\\python.exe
2 r-reticulate C:\\Users\\jal\\AppData\\Local\\Continuum\\Anaconda\\envs\\r-reticulate\\python.exe

> py_config()
python:         C:\Users\jal\AppData\Local\CONTIN~1\Anaconda\python.exe
libpython:      C:/Users/jal/AppData/Local/CONTIN~1/Anaconda/python27.dll
pythonhome:     C:\Users\jal\AppData\Local\CONTIN~1\Anaconda
version:        2.7.15 |Anaconda custom (64-bit)| (default, May  1 2018, 18:37:09) [MSC v.1500 64 bit (AMD64)]
Architecture:   64bit
numpy:          C:\Users\jal\AppData\Local\CONTIN~1\Anaconda\lib\site-packages\numpy
numpy_version:  1.14.3
pandas:         C:\Users\jal\AppData\Local\CONTIN~1\Anaconda\lib\site-packages\pandas

python versions found: 
 C:\Users\jal\AppData\Local\CONTIN~1\Anaconda\python.exe
 C:\Users\jal\AppData\Local\CONTIN~1\ANACON~1\python.exe

【问题讨论】:

  • 我第一次使用 reticulate 时遇到了类似的问题。从 shell 中删除并重新创建 r-reticulate conda 环境解决了我的问题,请参阅 github.com/rstudio/reticulate/issues/253
  • 我也一直在努力解决这个问题(在 OS X 上),但这些解决方案都没有奏效。我安装了 RStudio 1.2.x,我将 RETICULATE_PYTHON=/python3 添加到我的 .Renviron 文件中,我删除并重新安装了 conda env r-reticulate。我运行conda_install('r-reticulate', 'psycopg2') 和'numpy' 相同,但是当我运行py_config() 时两个包都没有出现。 import('psycopg2')import('numpy') 都导致“ModuleNotFoundError: no module named ...”
  • conda_install(...) 每次运行时都会安装。它无法识别软件包已安装。
  • 在我的情况下,我有一个 ~/.virtualenvs/r-tensorflow 文件夹来尝试安装 tensorflow。删除该目录解决了这个问题。
  • 重启 RStudio 为我解决了这个问题。

标签: r reticulate


【解决方案1】:

一时兴起,我下载并安装了最新的 RStudio 桌面 (1.​​2.701) 并从 1.1.442 升级。这似乎解决了我的问题。包加载,我现在看到,当我运行 py_config 时,我看到了反映我的环境选择的路径,正如我所期望的那样。

> py_config()
python:         C:\Users\jal\AppData\Local\Continuum\Anaconda\envs\r-reticulate\python.exe
libpython:      C:/Users/jal/AppData/Local/Continuum/Anaconda/envs/r-reticulate/python36.dll
pythonhome:     C:\Users\jal\AppData\Local\CONTIN~1\Anaconda\envs\R-RETI~1
version:        3.6.5 |Anaconda, Inc.| (default, Mar 29 2018, 13:32:41) [MSC v.1900 64 bit (AMD64)]
Architecture:   64bit
numpy:          C:\Users\jal\AppData\Local\CONTIN~1\Anaconda\envs\R-RETI~1\lib\site-packages\numpy
numpy_version:  1.14.3
psycopg2:       C:\Users\jal\AppData\Local\CONTIN~1\Anaconda\envs\R-RETI~1\lib\site-packages\psycopg2

python versions found: 
 C:\Users\jal\AppData\Local\Continuum\Anaconda\envs\r-reticulate\python.exe
 C:\Users\jal\AppData\Local\CONTIN~1\Anaconda\python.exe
 C:\Users\jal\AppData\Local\CONTIN~1\ANACON~1\python.exe

【讨论】:

  • 我可以看到py_config 的python 版本,但仍然没有成功。只需从终端在正确的环境中运行即可。
【解决方案2】:

我通过以下方式解决了我的问题:

  • 关闭 RStudio。
  • 打开终端并激活您想要的环境。
  • 通过$ open -na Rstudio 运行 RStudio

现在你有你的anac了

【讨论】:

    【解决方案3】:

    我在 RStudio 中按照这种方式解决了我的问题:

    py_config() 找不到 Python 的非系统安装。 您想下载并安装 Miniconda 吗? Miniconda 是 Python 的开源环境管理系统。 详情请见https://docs.conda.io/en/latest/miniconda.html

    您想安装 Miniconda 吗? [是/否]:是的

    • 正在下载“https://repo.anaconda.com/miniconda/Miniconda3-latest-Windows-x86_64.exe”... 尝试 URL 'https://repo.anaconda.com/miniconda/Miniconda3-latest-Windows-x86_64.exe' 内容类型 'application/octet-stream' 长度 57256056 字节 (54.6 MB) 已下载 54.6 MB

    • 正在安装 Miniconda -- 请稍等...

    【讨论】:

    • 如果您希望您使用 conda 环境,那很好。就我而言。对于那些使用另一个虚拟环境的人,例如 pipenv,它不起作用..
    最近更新 更多