2009-03-05 3 views
6

私はtcshに関する多くの経験がありませんが、私は学習に興味があります。私はPYTHONPATHを見るためにPythonを入手することに問題がありました。私は$ PYTHONPATHをエコーすることができますが、それは正しいですが、私がPythonを起動すると、私のパスはsys.pathに現れません。何か案は?tcshのPython

EDIT:

[[email protected] ~]$ echo $PYTHONPATH 
/home/ba01/u116/dmcdonal/PyCogent-v1.1 

>>> from sys import path 
>>> from os import environ 
>>> path 
['', '/apps/steele/Python-2.5.2/lib/python2.5/site-packages/setuptools-0.6c8-py2.5.egg', '/apps/steele/Python-2.5.2/lib/python2.5/site-packages/FiPy-2.0-py2.5.egg', '/apps/steele/Python-2.5.2', '/apps/steele/Python-2.5.2/lib/python25.zip', '/apps/steele/Python-2.5.2/lib/python2.5', '/apps/steele/Python-2.5.2/lib/python2.5/plat-linux2', '/apps/steele/Python-2.5.2/lib/python2.5/lib-tk', '/apps/steele/Python-2.5.2/lib/python2.5/lib-dynload', '/apps/steele/Python-2.5.2/lib/python2.5/site-packages', '/apps/steele/Python-2.5.2/lib/python2.5/site-packages/Numeric'] 
>>> environ['PYTHONPATH'] 
'/apps/steele/Python-2.5.2' 

答えて

10

どのようにPYTHONPATHを設定していますか?あなたはtcshのsetとsetenvを混同しているかもしれません。 "set"を使用して、シェル変数を呼び出し、 "setenv"を使用して環境変数を設定します。ですから、Pythonがそれを見るためにはsetenvを使う必要があります。例:

$ set FOO='bar' 
$ echo $FOO 
bar 
$ python -c 'import os; print os.getenv("FOO")' 
None 

$ setenv BAR 'wiz' 
$ echo $BAR 
wiz 
$ python -c 'import os; print os.getenv("BAR")' 
wiz 

さらに詳しい情報はthe variables section of the tcsh documentationにあります。

1

は、あなたが(:環境変数を無視している)-Eオプションでのpythonを起動していないことを確認します。シェルスクリプトやその他のアプリケーションでPythonを起動した場合は、何も追加しないことをもう一度確認してください。

sys.pathのリストが長いため、パスを見逃すことはありません。 PYTHONPATHのものは通常、ライブラリのすべてのパスの後にリストの真ん中に追加されます。あなたの道はどこにでもあり、ちょうど真ん中に埋もれていますか?

+0

リストには絶対含まれておらず、私はバイナリを直接呼び出しています – daniel

+0

Hmmm ...他のシェルでも動作しますか?あなたがbashなどにポップしたら、それはそこで動作しますか?どのバージョンのPython、btw? –

+0

はbashでうまく動作します。 v2.5.2 – daniel

0

チェック:

  1. PYTHONPATHは
  2. 、はos.environであり、パスのコロンで区切られたリストの正しい値に設定します。

もし、パスがsys.pathにないことを確認できれば、バグが見つかりました。

os.environにない場合、環境はPythonに渡されません(おそらく別のバグ)。

もちろん、実際のコード/エクスポートを表示すると、誰かがあなたにかなり素早く伝えます。

0

はまた、私はPythonの2.6.2に、それが正常に動作切り替えたときに同じ問題がでも私は、私は、Python 2.5.1使用.cshrcに正しく環境PYTHONPATHを設定しています。それはPythonのバグのように見えます。

関連する問題