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 をご覧ください。