Pythonモジュールパスを追加するには、シェルスクリプトにコマンドを追加します。

Pythonモジュールパスを追加するには、シェルスクリプトにコマンドを追加します。

Pythonモジュール(setup.sh)をインストールするために使用されるLinuxシェルスクリプトを変更して、環境変数にフォルダを追加したいと思います。これは、端末でPythonモジュールを実行するために必要です。たとえば、python -m newtool.py

いくつか読んだ後、これを実装したのは、setup.shファイルでPythonスクリプト(addmoduletopath.py)を呼び出し、新しいPythonモジュールフォルダをPYTHONPATH環境変数(sys.path.appendを使用)に追加することでした。

これはPythonモジュールをPYTHONPATH環境変数に追加するようです。一度設定して「python -m newtool.py」を実行すると、pythonはモジュールパスを見つけます。ただし、sudo(例えばsudo python -m newtool.py)を使用して同じコマンドを実行すると、「newtoolというモジュールがありません」というメッセージが表示されます。

どんなアイデアがありますか?

ところで。これは私のaddmoduletopath.pyスクリプトです。

#!/usr/bin/env python
import sys

newtool="/opt/newtool"
if (newtool not in sys.path):
        sys.path.append(newtool)

答え1

これは、sudoモードで実行しても現在の環境変数が保持されないために発生します。 -E スイッチで sudo コマンドを実行すると、環境変数が渡されます。

詳しくは man sudo をご覧ください。

関連情報