0

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

python projects/example.py

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

sudo python projects/example.py

我得到了张量流导入错误。

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 中运行服务器代码?

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

4

1 回答 1

2

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

使用选项执行sudo命令-E以保留您的环境或LD_LIBRARY_PATH在您的 sudo 命令中调用 python 之前进行设置,如下所示:

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

正如这个 SO 答案所解释的那样。

于 2019-12-25T04:02:38.643 回答