R中无法找到安装的Python库的问题

11

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

在加载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 可执行文件的路径。但是我没有任何可以比较的东西,所以我的期望可能是错误的。

> 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

3
第一次使用reticulate时,我遇到了类似的问题。从shell中删除并重新创建r-reticulate conda环境解决了我的问题,参见https://github.com/rstudio/reticulate/issues/253。 - Raniere Silva
我也一直在这方面努力(在OS X上),但是这些解决方案都没有起作用。我安装了RStudio 1.2.x,将RETICULATE_PYTHON=<pathto>/python3添加到我的.Renviron文件中,删除并重新安装conda env r-reticulate。我运行了conda_install('r-reticulate','psycopg2')和同样的操作安装'numpy',但当我运行py_config()时,两个软件包都没有显示出来。import('psycopg2')import('numpy')都会导致“ModuleNotFoundError:no module named …”。 - Brian D
1
conda_install(...) 每次运行时都会进行安装。它无法识别已经安装的软件包。 - Brian D
在我的情况下,我尝试安装tensorflow时创建了一个~/.virtualenvs/r-tensorflow文件夹。删除该目录解决了问题。 - wordsforthewise
重新启动RStudio解决了我的这个问题。 - mikoontz
3个回答

8

出于一时兴起,我下载并安装了最新的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版本,但仍然没有成功。只有从终端正确的环境中运行才能起作用。 - Shayan Amani

1

我在RStudio中按照以下步骤解决了我的问题:

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

您想安装Miniconda吗?[Y/n]: Y

  • 正在下载“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--请稍等...


1
如果你想使用 conda 环境,那也可以。但是对于像 pipenv 这样的其他虚拟环境用户来说,这种方法可能行不通。 - rodolfoksveiga

0

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

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

现在您已经拥有了您的anac。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接