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


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

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

2 15

2 ответа:

Вы можете использовать параметр --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.функция () и к тому, что не находится в PyPi, перегонный куб.функция() Моя цель пути /tmp/и проверить, как я был с использованием виртуального окружения. Вам нужно будет заменить этот путь правильным для вашего установка python.

Как о абсолютные и относительные импорта.

Https://docs.python.org/2/whatsnew/2.5.html#pep-328-absolute-and-relative-imports