Вопрос

У меня не так много опыта работы с 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'
Это было полезно?

Решение

Как вы настраиваете 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.

Другие советы

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

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

Проверить:

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top