使用 sudo 命令的服务器的 Tensorflow 不起作用

Tensorflow from server with sudo command not working

我在本地 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 一起正常工作

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

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

我怀疑这是因为 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

.