К сожалению, это делается с помощью жестко закодированного шаблона глубоко внутри setuptools/command/easy_install.py
. Вы можете создать пропатченные установочные инструменты с отредактированным шаблоном, но я не нашел чистого способа расширения easy_install извне.
Каждый раз, когда запускается easy_install, он восстанавливает файл easy_install.pth
. Вот быстрый скрипт, который вы можете запустить после easy_install, чтобы удалить верхний и нижний колонтитулы из easy_install.pth
. Вы можете создать скрипт оболочки для запуска сразу после easy_install
:
#!/usr/bin/env python
import sys
path = sys.argv[1]
lines = open(path, 'rb').readlines()
if lines and 'import sys' in lines[0]:
open(path, 'wb').write(''.join(lines[1:-1]) + '\n')
Пример:
% easy_install gdata
% PYTHONPATH=xyz python -c 'import sys; print sys.path[:2]'
['', '/Users/pat/virt/lib/python2.6/site-packages/gdata-2.0.14-py2.6.egg']
% ./fix_path ~/virt/lib/python2.6/site-packages/easy_install.pth
% PYTHONPATH=xyz python -c 'import sys; print sys.path[:2]'
['', '/Users/pat/xyz']
Для большей ясности, вот формат easy-install.pth
:
import sys; sys.__plen = len(sys.path)
./gdata-2.0.14-py2.6.egg
import sys; new=sys.path[sys.__plen:]; del sys.path[sys.__plen:]; p=getattr(sys,'__egginsert',0); sys.path[p:p]=new; sys.__egginsert = p+len(new)
Две import sys
линии - виновник, заставляющий яйца появляться в начале пути. Мой скрипт просто удаляет эти строки sys.path
.