9 votos

¿Por qué puede ' t importar mi script desde la consola de python?

estoy trabajando con la consola de python de qgis. Generalmente guardar todos mis scripts de python en ~/Scripts/python han creado el sistema PYTHONPATH para ~/Scripts/python en mi .bashrc sin embargo, no puedo manejar a mis sripts de importación de la consola dentro de QGIS.

Aquí está mi error al intentar importar un script llamado Create_Figures_2D

import Create_Figures_2D
Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File "/usr/lib/python2.7/dist-packages/qgis/utils.py", line 309, in _import
    mod = _builtin_import(name, globals, locals, fromlist, level)
ImportError: No module named Create_Figures_2D

¿Cómo configurar el sistema PYTHONPATH para pygis?

1voto

alexis.kennedy Puntos 402

En la consola de Python ejecute el siguiente:

import sys
sys.path

Vea si su PYTHONPATH entrada está en la lista. Supongo que no, ya que la variable de entorno probablemente no está disponible para QGIS está ejecutando Python.

Para agregar tu carpeta de secuencias de comandos de la consola de sys.camino de hacer una regular append():

sys.path.append('~/Scripts/python')

Entonces usted debe ser capaz de importar los módulos de allí para que la sesión de consola. Recomiendo la expansión de la ~ a su completo del usuario de inicio de ruta (no estoy seguro si Python hace ~ de expansión).

EDIT: ~ de expansión no parece estar apoyado por sys.ruta (en Mac, al menos).

QGIS la consola de Python es creado por un módulo de Python, 'console.py'. Por lo tanto, si usted desea agregar su ruta de acceso personalizada para su sys.ruta de acceso de una forma más permanente de la moda, modificar el console.py archivo y agregar el sys.ruta de acceso.append('ruta/a/mi/scripts') declaración después de que el módulo de las importaciones de la sección.

console.py se encuentra aquí (para Mac, el uso de KyngChaos.com QGIS paquete):

/Applications/QGIS.app/Contents/Resources/python/qgis/console.py

Por supuesto, este es un hack que será borrado y tiene que ser hecho de nuevo en una de QGIS.actualización de aplicación.

Cualquier ajuste a la ejecución de QGIS intérprete de Python sys.ruta de acceso está disponible para otros plugins así.

Una alternativa más segura puede ser hacer una simple, el desarrollo de PyQGIS plugin que carga y sólo hace el sys.ruta de acceso.append(), en el momento que desee. También se podría eliminar la ruta de acceso desde sys.ruta de acceso en el plugin unload(). No he probado si el sys.ruta de ajuste de un plug-in estará disponible en los ya de por sí cargado de consola (supongo, sería.)

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X