2011-07-19 17 views
0

パイソンを使用して(2.6.6 - EPD 6.3-1(32ビット))バイナリ実行可能ファイルを見つけることができないパス環境変数subprocess.call

call(cmmd, shell=True) 

オンを使用してMac OS 10.6.8は、Eclipse/Pydevから起動し、shが実行可能ファイルを見つけられなかったことを返します。

print os.environ['PATH'] 

を実行すると、デフォルトのパスを返します。

/usr/bin:/bin:/usr/sbin:/sbin

は今、任意のシェルからそのことについては、この実行可能ファイルまたはスクリプトを実行することは問題ではありませんし、そのパスは、/ etc /プロファイルに追加されます、〜/ .profileと/ etc/pathsにあります。

Pydevを設定する方法はありますか?実行構成が正しいように見えます。すなわち、正しいPythonバージョンを取得します。

注:分かりやすく

+0

あなたの質問は何ですか? :) – jathanism

答えて

2

ために編集ログインシェルと非ログインシェルの間に違いがあります。 Eclipseから起動したPythonで実行すると、シェルは非ログインシェルとして起動し、~/.profileはロードされません。 This article has the details。したがって、subprocess.callを呼び出す前に実行ファイルが存在するディレクトリがos.environにあることを確認する必要があります。実行ファイルに絶対パスを指定することも、シェルスクリプト(実行ファイルが単なるシェルスクリプトである場合)パスを管理したり、PATH環境変数を管理することができます。サブプロセスの環境や他の多くの側面の詳細な制御を得るために、環境変数の辞書をsubprocess.Popenに渡すこともできます。

+0

この記事では、 '〜/ .bashrc'に環境変数をコピーしてEclipseを見られるようにしています。だから、 '〜/ .bashrc'を'〜/ .bash_profile'にハードリンクしてEclipseを再起動しました。しかし、EclipseのPythonスクリプトから、 'os.environ'にすべてを出力すると、'〜/ .bashrc'に環境変数が定義されていません。指示が間違っているのですか、私は混乱していますか? – dhg

+0

記事をありがとう。しかし、/ etc/bashrcや〜/ .bashrcを設定することはできません。現在の修正は、実行可能ファイルへのパスを持つプラットフォーム依存の設定ファイルです。 – Maurits

+0

それで、変数をドック内のものに見えるように設定するのに最適な場所は何ですか? – dhg