Есть десктопная программа на Python, которая использует библиотеку (для определенности - pygments, хотя это не так важно). Чтобы пользователю не нужно было заботиться о зависимостях, библиотека pygments поставляется вместе с программой и вполне успешно используется.
Но дело в том, что в самом pygments есть много кода вида
from pygments.bla_bla_bla import ...
Возникают проблемы, если у пользователя в системе уже установлен pygments, тогда при импорте Python ищет модуль pygments сначала в site-packages и успешно находит. Но нужно сделать, чтобы независимо от того, установлен ли pygments в системе глобально, использовалась именно та версия, что прилагается к программе.
Можно ли это сделать, не трогая код библиотеки pygments?
Ответ
Здравствуйте.
Вариант "в лоб"
import sys
sys.path.insert(0,'catalog_with_your_pygments')
import pygments
Также может помочь virtualenv, или смена архитектуры Вашего приложения.
Комментариев нет:
Отправить комментарий