Problema de PyQGIS para encontrar la ruta del script de Python
Tengo dos scripts de Python. El script principal importa el segundo script
test_credenziali.py (secuencia de comandos principal)
#!/usr/bin/env python
# coding=utf-8
# Copyleft Roberto Marzocchi - Gter srl Innovazione in Geomatica Gnss e Gis
import os,sys,shutil,re,glob, getopt
dirname0 =os.path.dirname(sys.argv[0])
#dirname = os.path.dirname(os.path.realpath(__file__)) #NameError: name '__file__' is not defined
dirname2= os.getcwd()
print('The path of the python script is ', dirname0 )
#print('The path of the python script is ', dirname )
print('The path of the python script is ', dirname2 )
# here i like to use the dirname variable
sys.path.insert(0, r'C:\Users\assis\Desktop\script_test')
from credenziali import *
print(host)
credenziali.py
host='domain.it'
Guardo ambos guiones en la misma carpeta (por ejemplo, en mi escritorio) C:\Users\assis\Desktop\script_test
y si uso la siguiente línea antes de la importación de credenziali.py , funciona
sys.path.insert(0, r'C:\Users\assis\Desktop\script_test')
Sin embargo, me gusta usar la ruta relativa para llamar al script credenziali.py . Usando Python normalmente funciona o puedo usar el comando
dirname = os.path.dirname(os.path.realpath(__file__))
para obtener la ruta del script principal.
Usar la consola Python de QGIS no funciona.
Respuestas
Lo que creo es (puedo estar equivocado) que esto sucede porque cuando ejecuta un complemento, los scripts se compilan y los archivos creados, con la extensión .pyc, se guardan en la carpeta py_cache de su complemento.
Pero, ¿se supone que Python es un lenguaje interpretado? Sí, pero cuando importa un módulo, en este caso os, ese módulo se compila en el archivo .pyc.
En la consola supongo que ese archivo no es accesible o es temporal.
Esperemos que un gurú nos brinde una mejor información.