operaciones - Cómo eliminar el directorio actual de la ruta de importación de python
python directorios (2)
@ragol, creo que Padraic tiene la solución correcta. Dentro de la secuencia de comandos python que intenta ejecutar comandos hg, debe incluir el siguiente comando: sys.path.insert(0,"/usr/lib/pythonVERSION")
Coloque el comando al principio de su secuencia de comandos python. El comando le dice a python que mire en el directorio /usr/lib/pythonVERSION
primero al importar módulos.
Si eso no funciona, es posible que deba ser más específico con la ruta. Por ejemplo, si el módulo que está tratando de importar está ubicado en el directorio /usr/lib/pythonVERSION/site-packages/hg
, puede usar el siguiente comando: sys.path.insert(0,"/usr/lib/pythonVERSION/site-packages/hg")
Quiero trabajar con el repositorio mercurial de hg
sí. Es decir, cloné Mercurial de https://www.mercurial-scm.org/repo/hg y quiero ejecutar algunos comandos hg
dentro del repositorio clonado. El problema es que al ejecutar hg
dentro de este clon hg
ejecutable intenta cargar sus módulos de python desde este directorio y no desde /usr/lib/pythonVERSION
etc. Según tengo entendido, esto sucede porque la ruta de importación de Python sys.path
contiene una cadena vacía como primera entrada que probablemente significa "directorio actual". PYTHONPATH
variable de entorno PYTHONPATH
no está configurada.
La pregunta es cómo puedo evitar que mi hg
instalado importe módulos "incorrectos".
La forma en que trataría el tema es creando un /usr/local/bin/hg
sh con los siguientes contenidos:
#!/bin/sh
PYTHONPATH=/usr/lib/pythonVERSION/site-packages /usr/bin/hg
(Los distributivos basados en Ubuntu usan dist-packages
lugar de site-packages
)
PYTHONPATH
es una variable de entorno especial respetada por el intérprete de Python para obtener rutas de importación de módulos adicionales.
Alternativamente, puede exportar PYTHONPATH
a su caparazón, pero afectará su experiencia completa.