【问题标题】:Tensorflow from server with sudo command not working来自服务器的 TensorFlow 使用 sudo 命令不起作用
【发布时间】:2019-12-25 12:33:26
【问题描述】:

我在本地 PC 中使用服务器 (SSH) 和 PyCharm 进行远程开发。 我使用 sudo 权限从本地 PC 安装了 tensorflow (pip)。当我在终端(MobaXterm)中运行 tensorflow 代码时

python projects/example.py

代码工作,但由于权限无法将结果数据保存在服务器中,但是当我使用 sudo 运行相同的代码来解决权限错误时。

sudo python projects/example.py

我得到了 tensorflow 导入错误。

ImportError: Traceback (most recent call last):
  File "/usr/local/lib/python3.6/dist-packages/tensorflow/python/pywrap_tensorflow.py", line 58, in <module>
    from tensorflow.python.pywrap_tensorflow_internal import *
  File "/usr/local/lib/python3.6/dist-packages/tensorflow/python/pywrap_tensorflow_internal.py", line 28, in <module>
    _pywrap_tensorflow_internal = swig_import_helper()
  File "/usr/local/lib/python3.6/dist-packages/tensorflow/python/pywrap_tensorflow_internal.py", line 24, in swig_import_helper
    _mod = imp.load_module('_pywrap_tensorflow_internal', fp, pathname, description)
  File "/usr/lib/python3.6/imp.py", line 243, in load_module
    return load_dynamic(name, filename, file)
  File "/usr/lib/python3.6/imp.py", line 343, in load_dynamic
    return _load(spec)
ImportError: libcublas.so.9.0: cannot open shared object file: No such file or directory

此外,我在 PyCharm 中设置了远程开发环境,使用 PyCharm 时遇到了同样的错误。 PyCharm 总是从具有 sudo 权限的服务器执行代码。这个问题只存在于 tensorflow 代码中。其他代码(PyTorch、Caffe 等)可以在终端或 PyCharm 中使用 sudo 正常工作。

请给我一些有价值的解决方案

  • 关于上述语句,如何使用 sudo 权限运行 tensorflow 代码?
  • 有什么方法可以在 Python 中定义一段代码,无需 sudo 权限即可将结果数据保存在服务器中?
  • 附加问题:在远程开发中,我们如何在没有 sudo 权限的情况下在 PyCharm 中运行服务器代码?

我搜索了有关此问题的解决方案,但找不到任何解决方案。

【问题讨论】:

  • 这个库(libcublas.so.9.0)来自 cuda 库。你有没有看到这个问题github.com/tensorflow/tensorflow/issues/15604
  • @Mirodil 你没有得到我的问题。没有 sudo tensforflow 正在工作。所以你的回答不能满足我的问题。

标签: python tensorflow pycharm sudo mobaxterm


【解决方案1】:

我怀疑这是因为 root 的环境和环境变量与普通用户不同。

要么执行带有-E 选项的sudo 命令以保护您的环境,要么在您的sudo 命令中调用python 之前设置LD_LIBRARY_PATH,如下所示:

sudo LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-9.0/lib64/ python projects/example.py

作为this SO answer explains

【讨论】:

  • 是的,你是对的,服务器中有不同的环境。我遵循与您建议的相同的程序,但同样的问题。
  • 我解决了这个问题。我使用我的配置文件在服务器中安装了 PyCharm,然后从 MobaXterm 终端访问 PyCharm GUI。现在来自服务器的 PyCharm 中的 tensorflow 代码正在运行,但在本地 PC PyCharm 中它不起作用。此外,我使用我的个人资料直接在服务器端测试了服务器 PyCharm,因为服务器在我的办公室,但是 tensorflow 没有工作......我真的不知道服务器中 PyCharm 中的相同代码怎么可能不工作但当我从服务器访问本地 PC 中的 PyCharm 时,它正在工作。无论如何感谢您的回答。
猜你喜欢
  • 2019-01-27
  • 2016-11-13
  • 2012-10-23
  • 1970-01-01
  • 2020-11-25
  • 2018-08-19
  • 1970-01-01
  • 1970-01-01
  • 2023-04-10
相关资源
最近更新 更多