Страницы

Поиск по вопросам

понедельник, 10 декабря 2018 г.

Python. Подмена библиотеки из site-packages

Есть десктопная программа на 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, или смена архитектуры Вашего приложения.

Комментариев нет:

Отправить комментарий