Importar el module bifurcado en Python en lugar del module instalado

Me gustaría hacer cambios (y posiblemente contribuir si es bueno) a un proyecto público en GitHub. He bifurcado y clonado el module pero no estoy claro cómo hacer que mi progtwig importe la biblioteca local en lugar del module instalado "oficial".

Intenté clonarlo en la carpeta de mi proyecto, pero cuando lo calmap\calmap.plot() e intenté usarlo, las cosas se pusieron raras. calmap\calmap.plot()

También intenté hacer sys.path.append y la location de la carpeta. Pero parece seguir importando el oficial en lugar del bifurcado.

Asumo que podría poner mi progtwig dentro de la carpeta del module para que el module se encuentre primero, pero no puedo visualizar esa es la forma "correcta" de hacerlo.

 | |-->My_Project_Folder/ | |-->Forked_Module/ |-->docs/ |-->Forked_Module/ |-->__init__.py 

Si ya está usando anaconda, puede crear un nuevo entorno solo para el desarrollo de esta function.

Primero, crea un nuevo entorno:

 # develop_lib is the name of the environment. # You can pick anything that is memorable instead. # You can also use whatever python version you require ... conda create -n develop_lib python3.5 

Una vez que tenga el entorno, entonces probablemente quiera ingresar a ese entorno en su session actual:

 source activate develop_lib 

Bien, ahora que tiene configurado el entorno, es probable que necesite instalar algunos requisitos para la biblioteca de terceros que esté desarrollando. No sé cuáles son esas dependencies, pero puede instalarlas en su entorno mediante la conda install (si están disponibles) o utilizando pip . Ahora está listo para comenzar a trabajar con la biblioteca que desea actualizar. python setup.py develop debe estar disponible suponiendo que el package tiene un process de compilation estándar. Después de ejecutar eso, las cosas deberían ir bien. Puede hacer cambios, ejecutar testings, etc.

Si usa sys.path.append() la nueva "ruta" si ninguno de los anteriores contiene el module que está importando. Si desea que la "ruta agregada" tenga prioridad sobre todas las anteriores, debe usar

 sys.path.insert(0, "path") 

De esta forma, si imprime sys.path , verá que la ruta agregada se encuentra al principio de la list y que el module que está importando se cargará desde la ruta que ha especificado.