TL; DR: вызов site.addsitedir обрабатывать файлы .pth
Я не уверен, OS X, но PYTHONPATH и пакет сайта на самом деле являются своего рода независимыми, где речь идет о увеличивая SYS. дорожка.
Try this:
set PYTHONPATH somehow (OS dependent)
python -c "import sys; print '\n'.join(sys.path); print sys.exec_prefix; print sys.prefix"
python -S -c "import sys; print '\n'.join(sys.path);print sys.exec_prefix; print sys.prefix"
На моих Linux коробков, PYTHONPATH является частью продукции и оба раза - несмотря на то, -S переключатель во второе скачет прогон импортирующего модуль сайта.
Теперь, что site.module действительно принимает комбинации (sys.exec_prefix, sys.prefix) и зависимые от ОС префиксы (для linux: lib/python2.7/dist-packages), проверяет, есть ли какая-либо комбинация является существующим каталогом, и если это так обрабатывается (разбор .pth файлов в комплекте)
Код находится в модуле site.py - getsitepackages().
def getsitepackages():
"""Returns a list containing all global site-packages directories
(and possibly site-python).
For each directory present in the global ``PREFIXES``, this function
will find its `site-packages` subdirectory depending on the system
environment, and will return a list of full paths.
"""
sitepackages = []
seen = set()
for prefix in PREFIXES:
if not prefix or prefix in seen:
continue
seen.add(prefix)
if sys.platform in ('os2emx', 'riscos'):
sitepackages.append(os.path.join(prefix, "Lib", "site-packages"))
elif os.sep == '/':
sitepackages.append(os.path.join(prefix, "lib",
"python" + sys.version[:3],
"site-packages"))
sitepackages.append(os.path.join(prefix, "lib", "site-python"))
else:
sitepackages.append(prefix)
sitepackages.append(os.path.join(prefix, "lib", "site-packages"))
(...)
Эта функция в конечном итоге возвращает список, и для каждого элемента этой функции списка addsitedir называется - и в том, что один, у вас есть логика, чтобы получить файлы .pth работать.
Столь длинная история - обработка .pth файлов - вызов site.addistedir в вашем начальном скрипте. Вы также можете рассмотреть возможность его использования в файле sitecustomize.py - просто убедитесь, что у вашего дистрибутива python его еще нет.