GNU/Linux >> Linux の 問題 >  >> Linux

PYTHONPATH が GNU/Linux の sudo で機能しない (root で機能)

別のヒント:

sudo echo $PYTHONPATH:
    /home/name/lib/py

うまくいきません。シェルは次のように解釈します:

1) 環境変数から $PYTHONPATH を展開します。例:/usr/lib/python

2) 「sudo echo /usr/lib/python」を実行


私の場合の修正は、 Defaults !env_reset を削除することでした sudoers より。

しかし、 Defaults env_keep += "PYTHONPATH" を保持する必要がありました sudoers で。
実際に Defaults env_reset を追加しました (環境変数をリセットします)が、 env_keep のためにまだ機能します .

env_keep のようです および !env_reset 互いに競合しますが、それは単なる推測です.

したがって、プロセス全体:

<オール>
  • export PYTHONPATH=/your/custom/path を追加 ~/.bashrc まで または /etc/bash.bashrc
  • PYTHONPATH を追加 Defaults env_keep += "ENV1 ENV2 ..." まで sudoers ファイル内
  • Defaults !env_reset を削除 存在する場合は sudoers ファイルから

  • PYTHONPATH を操作する代わりの方法 :

    • virtualenv
    • distutils

    PATH についても同様です。 環境保護フラグ -E を渡しているにもかかわらず、スーパー ユーザー環境にも持ち込まれません。 .

    他の変更を加えずに、この sudo コマンドを使用しています:

    sudo -HE env PATH=$PATH PYTHONPATH=$PYTHONPATH ./bin/myscript
    

    これは (私にとって) 有効な代替アプローチであるため、ここで共有したいと思います。


    Linux
    1. Linux –Setuidが機能しないのはなぜですか??

    2. Linux – Caps Lock LEDがLinuxコンソールで機能しない?

    3. Linux –ヘッドフォンが機能しないLinux Mint 18?

    1. Linux で root 以外のユーザーのコマンドを有効にするための sudo の構成

    2. Linux で fflush() が機能しない

    3. Linux の limit.conf が機能しない?

    1. Linux コマンド 'll' が機能しない

    2. USB が UEFI/BIOS で動作するのに Linux で動作しないのはなぜですか?

    3. 特定のコマンドでsudoが機能しない