питон в тсш

У меня нет большого опыта работы с tcsh, но мне интересно учиться. У меня были проблемы с получением Python для просмотра PYTHONPATH. Я могу повторить $PYTHONPATH, и это правильно, но когда я запускаю Python, мои пути не отображаются в sys.path. Любые идеи?

РЕДАКТИРОВАТЬ:

[dmcdonal@tg-steele ~]$ 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'

person daniel    schedule 05.03.2009    source источник


Ответы (4)


Как вы устанавливаете PYTHONPATH? Возможно, вы путаете набор tcsh и setenv. Используйте «set», чтобы установить, что tcsh вызывает переменные оболочки, и используйте «setenv», чтобы установить переменные среды. Итак, вам нужно использовать setenv, чтобы Python его увидел. Например:

$ 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

Дополнительную информацию можно найти в разделе переменных документации tcsh.

person Ryan Bright    schedule 05.03.2009

Убедитесь, что вы не запускаете python с параметром -E (что означает: игнорировать переменные среды). Если вы запускаете python через сценарий оболочки или какое-либо другое приложение, просто дважды проверьте, что он ничего не добавляет.

Так как список sys.path длинный, может быть трудно пропустить ваши пути. Материал PYTHONPATH обычно добавляется примерно в середину списка после всех путей к библиотекам. Есть шанс, что ваши пути там, просто похоронены посередине?

person Jarret Hardie    schedule 05.03.2009
comment
определенно не в списке, и я вызываю двоичный файл напрямую - person daniel; 05.03.2009
comment
Хм... А в какой-нибудь другой оболочке это работает? Если вы заходите в bash и т. д., он там работает? Какая версия Python, кстати? - person Jarret Hardie; 05.03.2009

Проверять:

  1. PYTHONPATH находится в os.environ,
  2. и установите правильное значение списка путей, разделенных двоеточием.

Если это так, и вы можете подтвердить, что ваших путей нет в sys.path, вы нашли ошибку.

Если его нет в os.environ, ваша среда не проходит через Python (вероятно, еще одна ошибка).

Конечно, покажите нам реальный код/экспорт, и кто-нибудь довольно быстро вам все расскажет.

person Ali Afshar    schedule 05.03.2009

У меня также есть та же проблема, даже если я правильно установил среду PYTHONPATH в .cshrc, когда я использовал Python 2.5.1, когда я переключаюсь на Python 2.6.2, он работает нормально. Похоже, это ошибка python.

person Byrne Young    schedule 20.01.2011