2014-12-17 21 views
12

Używam dwóch pakietów Pythona, które mają tę samą nazwę.Jak obsługiwać pakiety Pythona o sprzecznych nazwach?

Czy istnieje kanoniczny lub pythonic sposobem obsługi instalacji dwóch pakietów ze sprzecznymi nazwami? Do tej pory potrzebowałem tylko jednego z pakietów podczas programowania/budowania, więc używałem osobnego virtualenv, aby poradzić sobie z konfliktem, ale sprawia to, że krok kompilacji jest bardziej złożony i zastanawiam się, czy nie ma lepszy sposób na poradzenie sobie z tym.

+2

Virtualenv to najlepszy sposób, jak sądzę. –

Odpowiedz

2

Można użyć opcji --target dla pip i zainstalować do innej lokalizacji:

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

Następnie podczas importowania w Pythonie, wykonaj najpierw jak zwykle i na alt zrobić import z tej przestrzeni nazw tak:

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

Wtedy, gdy jesteś wykonywania połączeń z tym jednym można nazwać alt_alembic.fu nction() i ten, którego nie ma w PyPi, alembic.function() Moja ścieżka docelowa ma/tmp/test, ponieważ korzystałem z wirtualnego env. Będziesz musiał zastąpić tę ścieżkę właściwą dla swojej instalacji Pythona.

Powiązane problemy