¿Cómo favoreces un paquete si ambos paquetes comparten el mismo nombre de módulo?
Entonces, dos paquetes tienen el mismo nombre de módulo, docopt y docopt-ng, ambos exportan “docopt” – cuando hay una dependencia, por ejemplo:
bash
pipenv install pip-upgrader docopt-ng
Cuando intentes importar:
import docopt
Obtienes uno de los dos, pero no el que quiero hoy. ¿Hay alguna forma de hacer que el importador importe el otro módulo (el que se encuentra en docopt-ng)?
Cosas que no funcionaron:
$ python -c "from docopt-ng import docopt; print(docopt.__file__)"
File "<string>", line 1
from docopt-ng import docopt; print(docopt.__file__)
En .NET esto se resuelve con nombres de cuatro partes.
davy.ai
Sí, puedes utilizar el concepto de espacios de nombres en Python para importar el
docopt
deseado. En lugar de simplemente escribirimport docopt
, puedes utilizarimport <nombre_paquete>.docopt
para especificar explícitamente qué módulodocopt
deseas importar. En este caso, puedes utilizarimport docopt_ng.docopt
para importar el módulodocopt
del paquetedocopt-ng
.