2009-03-05 4 views
6

저는 tcsh에 대해 많은 경험이 없지만 학습에 관심이 있습니다. 나는 Python으로 PYTHONPATH를 보는 데 문제가있다. $ PYTHONPATH를 echo 할 수는 있지만, 올바른 것입니다.하지만 파이썬을 시작할 때 sys.path에 경로가 표시되지 않습니다. 어떤 아이디어?tcsh의 Python

편집 : (: 환경 변수를 무시되는)

[[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"를 사용하여 환경 변수을 설정하십시오. 그래서, 파이썬이 그것을보기 위해서 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을 시작하면 아무 것도 추가하지 않는다는 것을 다시 확인하십시오.

sys.path 목록이 길기 때문에 경로를 놓치기 어려울 수 있습니다. PYTHONPATH 항목은 일반적으로 모든 라이브러리 경로 다음에 목록의 중간에 추가됩니다. 당신의 길은 중간에 묻혀있을 것입니다.

+0

목록에 없기 때문에 직접 바이너리를 호출합니다 – daniel

+0

흠 ... 다른 쉘에서도 작동합니까? bash 등으로 튀어 오면 거기서 작동합니까? 무슨 파이썬 버전인가? –

+0

은 bash에서 잘 작동합니다. v2.5.2 – daniel

0

체크 :

  1. PYTHONPATH가 os.environ에 콜론의 정확한 값으로 설정
  2. 및 경로의 목록을 분리 하였다.

그렇다면 경로가 sys.path에 없다는 것을 확인하고 버그를 발견했습니다.

os.environ에 없으면 환경이 파이썬 (아마도 다른 버그)을 통과하지 못합니다.

물론 실제 코드/내보내기를 표시하면 누군가가 매우 빨리 알려줍니다.

0

나는 또한 내가 파이썬 2.6.2에, 그것은 잘 작동 전환 할 때 같은 문제가 심지어 내가, 내가 파이썬 2.5.1 사용 .cshrc 올바르게 환경 PYTHONPATH을 설정할 수 있습니다. 파이썬 버그 인 것 같습니다.