自Ubuntu更新以来R中的install_keras()错误

时间:2018-08-22 09:00:15

标签: r tensorflow keras

从一个月以来,我一直在使用《用R进行深度学习》这本书,它使我得以建立自己的第一个神经网络。 我正在使用Ubuntu。直到两天前,一切都还不错,并且工作正常。但是两天前,我将Ubuntu升级到Ubuntu 18.02。从那时起,我的R代码不再起作用。

我已经重做了书中推荐的内容(以及一个月前有效的内容):     $ sudo apt-get更新

$ sudo apt-get upgrade

$ sudo apt-get install python-pip python-dev

$ sudo apt-get install build-essential cmake git unzip pkg-config libopenblas-dev liblapack-dev

我没有错误。

然后在R中

install.packages("keras")
library(keras)
install_keras()

最后一条命令应该使用TensorFlow在Python虚拟环境中安装核心Keras库及其依赖项。

但是我得到了我真正不理解的以下错误:

> install_keras()
Using existing virtualenv at  ~/.virtualenvs/r-tensorflow 
Upgrading pip ...
Traceback (most recent call last):
File "/home/baragatt/.virtualenvs/r-tensorflow/bin/pip", line 7, in <module>
   from pip._internal import main
File "/home/baragatt/.virtualenvs/r-tensorflow/local/lib/python2.7/site-packages/pip/_internal/__init__.py", line 5, in <module>
   import logging
File "/usr/lib/python2.7/logging/__init__.py", line 26, in <module>
   import sys, os, time, cStringIO, traceback, warnings, weakref, collections
 File "/usr/lib/python2.7/weakref.py", line 14, in <module>
    from _weakref import (
ImportError: cannot import name _remove_dead_weakref
Erreur : Error 1 occurred installing TensorFlow

我已经重新安装了R,python,tensorflow,但是我总是遇到相同的错误。我不明白这个错误。也许这是virtualenv的问题?

有人可以帮我吗?真令人沮丧,因为两天前我的代码正在运行,现在无法工作...

我正在使用Ubuntu 18.02,安装的版本是python 2.7.15〜rc1-1,R-3.4.4和tensorflow-1.10.0。

2 个答案:

答案 0 :(得分:0)

非常感谢this post。我真的不明白这篇文章中的命令应该解决什么。但是我已经做了以下事情:

cd /home/baragatt/.virtualenvs/r-tensorflow/

然后,按照帖子中的建议:

virtualenv . --system-site-packages

我获得了以下消息:

Running virtualenv with interpreter /usr/bin/python2
New python executable in /home/baragatt/.virtualenvs/r-tensorflow/bin/python2
Not overwriting existing python script /home/baragatt/.virtualenvs/r-tensorflow/bin/python (you must use /home/baragatt/.virtualenvs/r-tensorflow/bin/python2)
Traceback (most recent call last):
   File "/usr/lib/python3/dist-packages/virtualenv.py", line 2375, in <module>
      main()
   File "/usr/lib/python3/dist-packages/virtualenv.py", line 724, in main
      symlink=options.symlink)
   File "/usr/lib/python3/dist-packages/virtualenv.py", line 946, in create_environment
      site_packages=site_packages, clear=clear, symlink=symlink))
   File "/usr/lib/python3/dist-packages/virtualenv.py", line 1417, in install_python
      os.symlink(py_executable_base, full_pth)
OSError: [Errno 17] File exists

我也尝试过:

virtualenv -p /usr/bin/python2.7 .

我得到了:

Running virtualenv with interpreter /usr/bin/python2.7
New python executable in /home/baragatt/.virtualenvs/r-tensorflow/bin/python2.7
Traceback (most recent call last):
   File "/usr/lib/python3/dist-packages/virtualenv.py", line 2375, in <module>
      main()
   File "/usr/lib/python3/dist-packages/virtualenv.py", line 724, in main
      symlink=options.symlink)
   File "/usr/lib/python3/dist-packages/virtualenv.py", line 946, in create_environment
      site_packages=site_packages, clear=clear, symlink=symlink))
   File "/usr/lib/python3/dist-packages/virtualenv.py", line 1278, in install_python
      shutil.copyfile(executable, py_executable)
   File "/usr/lib/python2.7/shutil.py", line 97, in copyfile
      with open(dst, 'wb') as fdst:
IOError: [Errno 40] Too many levels of symbolic links: '/home/baragatt/.virtualenvs/r-tensorflow/bin/python2.7'

答案 1 :(得分:0)

我通过查看不同的论坛终于找到了解决方案。 我认为问题应该是由于在R中执行以下命令时应创建的虚拟环境。

install_keras()

因此,我通过删除这些环境所在的目录来删除了虚拟环境(我想)。

cd ~/.virtualenvs
rm -r r-tensorflow/

然后我在R中尝试了以下命令

install.packages(“ keras”)    图书馆(keras)    install_keras()

它有效!老实说,我仍然不了解Ubuntu更新后发生了什么问题。