0

リモート開発のために PyCharm を使用してローカル PC でサーバー (SSH) を使用しています。ローカル PC から sudo 権限で tensorflow (pip) をインストールしました。端末で tensorflow コードを実行すると (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 権限でサーバーからコードを実行します。この問題は、tensorflow コードでのみ発生します。他のコード (PyTorch、Caffe など) は、ターミナルまたは PyCharm で sudo を使用して正常に動作します。

親切に私にいくつかの貴重な解決策を提案してください

  • 上記のステートメントに関して sudo 特権でテンソルフロー コードを実行するにはどうすればよいですか?
  • sudo権限なしで結果データをサーバーに保存できるコードをPythonで定義する方法はありますか?
  • 追加の質問: リモート開発では、sudo 特権なしで PyCharm でサーバー コードを実行するにはどうすればよいですか?

この問題について解決策を探しましたが、解決策が見つかりません。

4

1 に答える 1

2

これは、ルートが通常のユーザーとは異なる環境および環境変数を持っているためだと思われます。

次のように、環境を保持するオプションを指定してsudoコマンドを実行するか、sudo コマンドで python を呼び出す前に設定します。-ELD_LIBRARY_PATH

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

このSOの回答が説明しているように

于 2019-12-25T04:02:38.643 に答える