Python в tcsh - PullRequest
       37

Python в tcsh

6 голосов
/ 05 марта 2009

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

EDIT:

[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'

Ответы [ 4 ]

10 голосов
/ 05 марта 2009

Как вы настраиваете 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 * есть еще некоторая информация .

1 голос
/ 05 марта 2009

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

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

0 голосов
/ 20 января 2011

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

0 голосов
/ 05 марта 2009

Проверка:

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

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

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

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

...