【问题标题】:Using Python in R with reticulate package - Numpy not found在 R 中使用带有网状包的 Python - 找不到 Numpy
【发布时间】:2019-06-01 20:17:10
【问题描述】:

我开始使用 reticulate 包,它允许在 R 环境中使用 Python,并希望使用 sklearn 执行均值偏移聚类。所以这是我的尝试:

> library(reticulate)
> np <- import('numpy')
> sklearn <- import('sklearn')
> sklearn.MeanShift <- sklearn$cluster$MeanShift
> x <- matrix(rnorm(20), 10, 2)
> sklearn.MeanShift(x)
Error in py_call_impl(callable, dots$args, dots$keywords) : 
  Evaluation error: Required version of NumPy not available: installation of Numpy >= 1.6 not found.

如您所见,在调用sklearn 函数时找不到numpy,而reticulate::import 没有问题。我还检查了numpy 在 conda 提示符下的版本,它是 1.15.4。 py_numpy_available() 也返回 false。我的reticulate 配置是:

python:         C:\Users\jakes\ANACON~1\python.exe
libpython:      C:/Users/jakes/ANACON~1/python37.dll
pythonhome:     C:\Users\jakes\ANACON~1
version:        3.7.1 (default, Oct 28 2018, 08:39:03) [MSC v.1912 64 bit (AMD64)]
Architecture:   64bit
numpy:           [NOT FOUND]
scikit-learn:   [NOT FOUND]

python versions found: 
 C:\Users\jakes\ANACON~1\python.exe
 C:\Users\jakes\Anaconda3\python.exe

我该如何解决这个问题?

【问题讨论】:

  • 请不要将r标签用于非r问题。
  • @NelsonGon,reticulate 是一个允许在r 中使用python 的包,那么它是非问题的吗?我认为整个设置都在r 一侧。
  • 如果有人只是看这个问题,没有办法说这是一个 R 问题。人们会看到 python 代码并假设这是一个 python 问题。也许让它更明确?
  • 好的,我刚刚编辑指出它在开头。

标签: r numpy scikit-learn anaconda reticulate


【解决方案1】:

查看this thread 了解更多信息。

尝试从以 R 对象作为参数的 python 脚本调用函数时,我遇到了同样的错误。显然,发生这种情况是因为 Python 尚未添加到您的 PATH(这是在 Anaconda 安装期间建议的),这会阻止 reticulate 在初始化 python 时找到 numpy。 在使用 reticulate 初始化它之前将 python 添加到 R 中的 PATH 是解决我的问题的方法。所以从上述线程:

if(.Platform$OS.type == "windows") Sys.setenv(PATH= paste("C:/Anaconda3/Library/bin",Sys.getenv()["PATH"],sep=";"))
library(reticulate)

【讨论】:

    猜你喜欢
    • 2021-02-01
    • 2020-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-19
    • 1970-01-01
    • 2019-08-24
    • 1970-01-01
    相关资源
    最近更新 更多