私は現在、スクリプトは、独自のPythonインタプリタが含ま付属していたプログラムによって実行されているから、別のPythonのインスタンスを実行します。 このバージョンには必要なライブラリが含まれていないので、ローカルにインストールされた2.7のインスタンスに対して2番目のスクリプトを実行するためにos.execを使用します。別のインスタンス
しかし2番目のスクリプト、手動で実行する場合、完璧に動作し、PYTHONPATHが定義されていません。ラッパーが実行されたときにPYTHONPATHの出力をログに記録し、2番目のスクリプトがロードされると、元のインタープリターに初期化されたPYTHONPATHが両方とも2.6インスタンスになります。 これは明らかに、この動作が起きているこのいずれかのシステムにしながら、予想通り、さらに2つの他のシステム上でこの設定が100%に動作しますが、私はいくつかの環境変数は、私が予想していなかったことを渡されていると信じて私をリードしてきました。 2番目のスクリプトを呼び出すためのラッパーを作成するためのクリーンな方法はありますか?そうでなければ、env変数のこの不必要な渡しを避けることができます。
なぜあなたは、あなたのニーズに合わせていないPythonインタプリタをパッケージ化していますか?とにかくプリインストールされたバージョンのPythonに依存しなければならない場合は、あなたのパッケージにPythonインタプリタを含めることに意味がないようです。 –
私は元のプログラムを作成していないので、含まれているバージョンを制御することはできません。これは機能を拡張するために必要な作業です。 – Draineh
'os.execle'を使って明示的に環境変数を渡そうとしましたか? – unutbu