次のPythonスクリプト(repro.pyという名前)を実行すると、予期しない動作が発生しました。
import os
print os.environ['PATH'].replace(';', '\n')
によって呼び出された場合python repro.py
、私はこれを取得します:
C:\ Python26 \ C:\ Python26 \ Scripts C:\ Windows \ system32 C:\ Windows C:\ Windows \ System32 \ Wbem C:\ Program Files \ MySQL \ MySQL Server 5.1 \ bin
repro.py
コマンドプロンプトで入力して呼び出すと、次の結果が得られます。
C:\ Python26 \
起動方法に応じて、明らかrepro.py
に異なる環境を継承します。Pythonインタープリターへの最初の引数として開始されたとき、それは私が期待するように動作します。一方、.pyファイルを「開く」ときに使用するプログラムを自動的に判断するプロセスによって開始されると、非常に厳しい環境を継承します。ある種のセキュリティ機能のようなにおいがし始めます。
両方の呼び出し方法を同じように、できれば同等に動作させる方法はありますpython repro.py
か?なぜこれが起こっているのか誰かが知っていますか?
バージョン情報:ActivePython 2.6.5.12 (ActiveState Software Inc.)
Windows7の場合。