Ruta de la biblioteca de Python
-
22-07-2019 - |
Pregunta
Tengo un archivo de Python " testHTTPAuth.py " que utiliza el módulo deliciousapi y se mantiene en "deliciousapi.py".
He guardado los archivos como
testHTTPAuth.py
lib
deliciousapi.py
Pero cuando ejecuto: " python testHTTPAuth.py " está dando error
import deliciousapi
ImportError: No module named deliciousapi
¿Cómo puede manejar estas bibliotecas de Python? Porque más tarde puse el código junto con las bibliotecas como aplicación de Google. Así que no puedo mantener la biblioteca en la ruta normal de la biblioteca.
Solución
Debe agregar el directorio 'lib' a su ruta; de lo contrario, Python no puede encontrar su fuente. Lo siguiente (incluido en un módulo como testHTTPAuth.py) hará eso:
sys.path.append(os.path.join(os.path.dirname(__file__), 'lib')
La sugerencia de Ned de cambiar sus importaciones puede funcionar, pero si algo en el directorio lib importa submódulos con rutas absolutas (la mayoría de los módulos grandes hacen esto), entonces se romperá.
Otros consejos
Si agrega un __init__.py
vacío a su directorio lib, puede cambiar su declaración de importación a:
from lib import deliciousapi