Подтвердить что ты не робот

Как обрабатывать пакеты python с конфликтующими именами?

Я использую два пакета python с одинаковым именем.

Есть ли канонический или питонический способ обработки двух пакетов с конфликтующими именами? До сих пор я только время от времени нуждался в одном из пакетов во время разработки/создания, поэтому я использовал отдельный virtualenv для решения конфликта, но он делает шаг сборки более сложным, и мне интересно, нет ли лучший способ справиться с этим.

4b9b3361

Ответ 1

Вы можете использовать опцию --target для pip и установить в другое место:

pip install --target=/tmp/test/lib/python3.6/site-packages/alt_alembic alembic

Затем, когда вы импортируете в python, сделайте первое, как обычно, и для alt сделайте импорт из этого пространства имен следующим образом:

import alembic  # alembic.io version
from alt_alembic import alembic as alt_alembic  # pip version

Затем, когда вы вызываете этот вызов, вы можете вызвать alt_alembic.function() и тот, который не находится в PyPi, alembic.function() У моего целевого пути есть /tmp/test, поскольку я использовал виртуальный env. Вам нужно будет заменить этот путь на правильный для вашей установки python.