在R中使用Python - 错误:找不到/usr/bin/python的Python环境

14

我不理解 R 如何处理 Python 环境和 Python 版本,一直收到错误信息 Error: could not find a Python environment for /usr/bin/python。我在 shell 中安装了 Miniconda 并创建了一个 conda 环境:

conda activate r-reticulate

然后,在 R 中,我尝试安装 keras(使用 tensorflow 包时也出现了同样的问题):

library(keras)
reticulate::use_condaenv()
install_keras(method = "conda", conda = reticulate::conda_binary())

...并收到以下错误:

Error: could not find a Python environment for /usr/bin/python

我试图弄清楚Python R应该使用什么

reticulate::py_config()

并获取

python:         /usr/bin/python
libpython:      /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/config/libpython2.7.dylib
pythonhome:     /System/Library/Frameworks/Python.framework/Versions/2.7:/System/Library/Frameworks/Python.framework/Versions/2.7
version:        2.7.16 (default, Jul  5 2020, 02:24:03)  [GCC 4.2.1 Compatible Apple LLVM 11.0.3 (clang-1103.0.29.21) (-macos10.15-objc-
numpy:          /Users/bestocke/Library/Python/2.7/lib/python/site-packages/numpy
numpy_version:  1.16.6
tensorflow:     [NOT FOUND]

python versions found: 
 /usr/bin/python3
 /usr/local/bin/python3
 /usr/bin/python

我不理解这个。它似乎在使用Python 2.7。当我尝试弄清楚shell中正在使用哪个Python时,我得到了:

> which python
/opt/miniconda3/envs/r-reticulate/bin/python

> ls -l /opt/miniconda3/envs/r-reticulate/bin/python
lrwxr-xr-x  1 username  wheel  9 Aug  2 15:21 /opt/miniconda3/envs/r-reticulate/bin/python -> python3.6

建议使用Python 3.6。

我在这里错了什么?

3个回答

26
请尝试按照https://tensorflow.rstudio.com/installation/指南操作:

在R-studio控制台中:

  1. install.packages("tensorflow")

  2. library(tensorflow)

  3. install_tensorflow()

如果您尚未手动安装Anaconda / Miniconda,则在第3步时会提示您确认安装Miniconda。如果您已经安装了conda,则执行以下步骤:

  1. 在conda中创建新环境r-reticulateconda create -n r-reticulate
  2. 使用以下参数从R-studio控制台安装tensorflow:install_tensorflow(method = 'conda', envname = 'r-reticulate')
  3. 加载reticulate包library(reticulate)
  4. 在R-studio中激活conda环境use_condaenv('r-reticulate')
  5. 加载tensorflow库library(tensorflow)
  6. 检查tensorflow是否激活tf$constant("Hellow Tensorflow")

参考资料:


1
谢谢。最终我不得不在终端中安装Python包tensorflow和keras,而不是在R中安装。这是必要的,因为由于版本不兼容而引发了错误。我按照您建议的做了一切,除了第二点,我通过conda install tensorflow(安装v. 2.2.0)和conda install keras(安装v. 2.4.3)在shell中完成了安装。 - stineb

0

我使用了virtualenv进行安装,发现我必须通过envname指定环境的完整路径。不能通过method="virtualenv", envname="r-reticulate"来工作。


-1

我希望有时间添加信息。我尝试了Anugerah Erlaut所说的方法,但是通过WSL在R-studio服务器上安装Keras GPU。

我知道解决方案会起作用,因为我在另一台计算机上尝试过,在Windows上安装了Keras CPU。经过一段时间的测试(并感到沮丧),似乎Rstudio没有权限更改r-reticulate env。

因此,我尝试在bash命令行上运行或“纯R”的解决方案,它完美地解决了问题!


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