来自服务器的张量流与 sudo 命令不起作用



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

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 权限从服务器执行代码。这个问题只存在于张量流代码中。其他代码(PyTorch,Caffe等(在终端或PyCharm中与sudo一起工作。

请向我建议一些有价值的解决方案

  • 如何以 sudo 权限运行有关上述语句的张量流代码?
  • 有没有办法在 Python 中定义一些代码,可以在没有 sudo 权限的情况下将结果数据保存在服务器中?
  • 附加问题:在远程开发中,我们如何在没有 sudo 权限的情况下在 PyCharm 中运行服务器代码?

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

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

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

最新更新