Tengo un módulo personalizado en uno de los directorios de mi PYTHONPATH con el mismo nombre que uno de los módulos de biblioteca estándar, de modo que cuando I import module_name
, ese módulo se carga. Si quiero usar el módulo de biblioteca estándar original, ¿hay alguna manera de forzar a Python a importar desde la biblioteca estándar en lugar de hacerlo desde el directorio PYTHONPATH, sin renombrar el módulo personalizado y cambiar cada referencia para apuntar al nuevo nombre?Forzar módulo de importación desde la biblioteca estándar de Python en lugar de PYTHONPATH predeterminado
Respuesta
La solución ideal sería la de cambiar el nombre del módulo para algo no en la biblioteca estándar.
Puede también switch absolute imports on si estás en Python 2.5+:
from __future__ import absolute_import
¿Cómo usaría importaciones relativas para obtener la versión de biblioteca estándar? – jrdioko
He entendido mal tu pregunta, respuesta editada. –
Esto no ayudará? –
Puede seleccionar el módulo que desea importar con el módulo imp:
import imp
mymodule = imp.load_module(name, file, pathname, description)
No.
Si accidentalmente ha elegido un nombre de módulo de biblioteca estándar, cambie el nombre de su módulo para terminar el conflicto.
Esta es probablemente la mejor solución, tanto para no causar confusión en los programadores visitantes, y el hecho de que el comportamiento que importa un módulo que no era ya una importación relativa no cambiará con las importaciones absolutas activadas. –
La mejor manera de hacerlo es poner su proyecto en un directorio digamos "miproyecto" que reside en:
/home/me/myproject
Hacer un vínculo simbólico a miproyecto directorio a una de los caminos pitón por defecto, por ejemplo:
# ln -s /home/me/myproject /usr/local/lib/python2.7/dist-packages/myproject
Ahora cuando se desea para importar un módulo dentro de su proyecto solo abra un intérprete de python.
>>> from myproject.mymodule import *
que va a funcionar como un encanto.
Una última cosa, no nombre su proyecto igual que los encontrados en la ruta python, por lo que no tendrá problemas durante la importación.
Una mejor manera sería usar 'PYTHONPATH'. Tampoco utilice 'from x import *', ya que confunde las herramientas de análisis estático y hace que sea más difícil comprender de dónde viene una variable. – bfontaine
- 1. Python: La importación de módulo
- 2. módulo de importación desde la variable de cadena
- 3. Importación de todo (*) dinámicamente desde un módulo
- 4. Python importación absoluta en el módulo falla
- 5. de. * importación del módulo
- 6. ¿Cómo configuro un directorio de biblioteca local de python/PYTHONPATH?
- 7. Captura de salida de impresión desde la biblioteca compartida llamada desde python con el módulo ctypes
- 8. Error de importación: Ningún módulo llamado django
- 9. ¿IronPython implementa la biblioteca estándar de Python?
- 10. ¿La biblioteca estándar de Python es realmente estándar?
- 11. biblioteca GEvent: "Error de importación: ningún módulo llamado greenlet"
- 12. ¿Por qué desde ... la importación parece vincularse al valor en tiempo de importación en Python?
- 13. ¿Python tiene decoradores en la biblioteca estándar?
- 14. importación de múltiples funciones de un módulo de Python
- 15. Objeto parecido a JavaScript en la biblioteca estándar de Python?
- 16. módulo de importación en otro directorio desde un subdirectorio "paralelo"
- 17. Etiquetas de biblioteca estándar
- 18. Importación de un módulo python sin ejecutarlo realmente
- 19. mod_wsgi python no puede importar de la biblioteca estándar
- 20. Rango de random.random de python() de la biblioteca estándar
- 21. Error de importación del módulo de subprocesamiento de Python
- 22. de objetos Python Importación que se origina en un módulo de un módulo diferente en un tercer módulo
- 23. Mecánica de importación de Python
- 24. rutas python y orden de importación
- 25. PYTHONPATH ignorado
- 26. problemas de importación de paquetes en Python
- 27. En la secuencia de comandos de Python, ¿cómo configuro PYTHONPATH?
- 28. Falló la importación de Python desde otra carpeta
- 29. python: fuerza de importación no relativa?
- 30. Python: "POSIX importación" cuestión
¿Qué tiene de malo renombrar su módulo? –
Simplemente implicaría realizar cambios en docenas de archivos. Aunque parece que es la mejor solución. – jrdioko
Tiene 'grep', por lo que no debería ser demasiado difícil encontrarlos y arreglarlos. –