В системе Ubuntu (10.10) у меня есть пакет Python, который устанавливает себя в /usr/local/lib/python2.6/site-packages/
. Это не содержится в пути по умолчанию (sys.path). Как добавить этот каталог в путь?
$PYTHONPATH
Конечно, установка переменной среды - это решение, но я ищу более элегантный способ сделать это. Например, easy_install
также помещает в него установленные пакеты, мой sys.path выглядит примерно так:
['', '/usr/local/lib/python2.6/dist-packages/keyring-0.5.1-py2.6.egg',
'/usr/lib/python2.6', '/usr/lib/python2.6/plat-linux2', '/usr/lib/python2.6/lib-tk',
'/usr/lib/python2.6/lib-old', '/usr/lib/python2.6/lib-dynload',
'/usr/local/lib/python2.6/dist-packages', '/usr/lib/python2.6/dist-packages',
'/usr/lib/python2.6/dist-packages/PIL', '/usr/lib/pymodules/python2.6',
'/usr/lib/pymodules/python2.6/gtk-2.0']
таким образом, путь явно не по умолчанию встроен в двоичный файл Python.
Есть ли один файл конфигурации, который содержит записи выше? Или каким образом это можно изменить?
sitecustomize.py
которыйsite.py
пытается импортировать и изменятьsys.path
там.Вы можете создать новый файл
/etc/profile.d/local_python.sh
с содержимымКоторый будет устанавливать
PYTHONPATH
переменную для всех зарегистрированных пользователей в вашей системе.источник
Я хотел бы обобщить мои выводы о модификации пути в Python. Есть два способа сделать это.
PYTHONPATH
Любой файл .pth, который находится по пути по умолчанию (см. Ниже), будет включен в его содержимое
sys.path
. Формат указанного .pth файла прост: один (папка) путь на строку. Удивительно, но пути могут быть абсолютными или относительными к файлу .pth .Путь по умолчанию - это место, где находится переводчик, и
<some-prefix>/lib/python<version>/site-packages
где<some-prefix>
обычно/usr/
.PYTHONPATH
является переменной среды вашей операционной системы. В системах Unix вы перечисляете их поenv
. Глобальная модификация таких переменных выполняется с помощью скриптов .sh внутри/etc/profile.d/
папки, как указано в @ TestUser16418.источник
Например, если вы хотите импортировать
suds
модуль, который доступен в виде.egg
файла:источник