Problema di PyQGIS per trovare il percorso dello script Python
Ho due script Python. Lo script principale importa il secondo script
test_credenziali.py (script principale)
#!/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'
Salvo entrambi gli script nella stessa cartella (ad es. Sul desktop) C:\Users\assis\Desktop\script_test
e se utilizzo la seguente riga prima dell'importazione delle credenziali.py funziona
sys.path.insert(0, r'C:\Users\assis\Desktop\script_test')
Tuttavia mi piace usare il percorso relativo per chiamare lo script credenziali.py . Usando python normalmente funziona oppure posso usare il comando
dirname = os.path.dirname(os.path.realpath(__file__))
per ottenere il percorso dello script principale.
Utilizzando la console QGIS Python non funziona.
Risposte
Quello che credo è, (potrei sbagliarmi) che questo accada perché quando esegui un plugin gli script vengono compilati e i file creati, con estensione .pyc vengono salvati nella cartella py_cache del tuo plugin.
Ma Python dovrebbe essere un linguaggio interpretato? Sì, ma quando importi un modulo, in questo caso os, quel modulo viene compilato nel file .pyc.
Nella console suppongo che il file non sia accessibile o sia temporaneo.
Speriamo che un guru ci dia informazioni migliori.