#python #module #python-import #enthought
#python #модуль #python-импорт #мысль
Вопрос:
У меня установлено множество версий пакетов. Моя база, системный python ~/Library/Enthought/Canopy_64bit/User/lib/python2.7/
но у меня также есть приложение (‘yt’), которое установило свой собственный python для
~/Applications/yt/yt-x86_64/lib/python2.7/
Я добавил путь yt, чтобы я мог импортировать модуль, который он включает, когда я запускаю свой системный python. Проблема в том, что когда я добавляю yt-path к PYTHONPATH
нему, добавляется множество других каталогов к более высоким записям в my sys.path
, так что, когда я пытаюсь импортировать numpy
(например), я в конечном итоге получаю yt-версию вместо моей системной версии.
Есть ли способ sys.path
предотвратить мои изменения?
Ответ №1:
PYTHONPATH
значения всегда вставляются перед стандартными путями к библиотекам python в sys.path
Один из возможных подходов к решению этой проблемы — добавить yt
путь к sys.path
себе.
Так что попробуйте
# append to the *end* of the system path.
sys.path.append('~/Applications/yt/yt-x86_64/lib/python2.7/path/to/libs')
при этом yt
конкретные модули будут помещены в конец списка, и ваша система numpy
будет найдена / импортирована первой.
Комментарии:
1. Другие вещи, которые я добавил в PYTHONPATH, похоже, добавляются в конец sys.path — похоже, именно этот
yt
материал меняет порядок… Я не уверен. В любом случае — ваша идея добавить путь конкретно к библиотекам великолепна и, похоже, работает! Спасибо!2. @zhermes — я не эксперт в PYTHONPATH, но, похоже, он находится в середине sys.path, после яиц, но перед стандартными модулями.