Joril ha scritto:
Scusate, temo sia una cavolata ma non riesco ad uscirne *_*;
Sto provando WingIDE con un progetto minuscolo, con questa struttura di
directory:
src (dir)
Main.py
test (dir)
__init__.py
Test.py
Dentro Main.py ho un semplicissimo
from test.Test import Testing
Se lancio Main tramite "Execute current file" funziona tutto, nel senso che mi
compare una shell con l'output dovuto all'import di test/__init__.py e di Testing dentro
Test.py.
Se invece lo lancio tramite "Debug selected" mi esce l'eccezione "ImportError: No
module named test.Test"
So che potrei "manomettere" sys.path da codice per accomodare la cosa, ma vorrei capire il motivo
della disparita' di trattamento tra debug ed esecuzione normale.. :/ Anche perche' presumo che risolvendo
questo punto riuscirei ad usare anche il "go to definition" quando riguarda Test.py (al momento
infatti mi esce "could not find definition of 'Test'")
Probabilmente è una faccenda di directory corrente: la cwd viene inclusa nel
sys.path quando esegui uno script. Forse nel primo caso WingIDE effettua un
chdir nella directory contenente il file corrente e non lo fa nel secondo caso.
Tanto per provare, aggiungi un "print '\n'.join(sys.path)" nel Main.py. Di
solito la cwd è il primo elemento della lista.
Puoi anche evitare di manomettere il sys.path e aggiungere invece il percorso
contenente il package nella variabile d'ambiente PYTHONPATH: ti garantirà il
corretto funzionamento del package in tutte le condizioni. Anche sott'acqua. A
lume di naso, la IDE ti dovrebbe permettere di impostarlo da qualche parte.
Ciao!
--
Daniele Varrazzo - Develer S.r.l.
http://www.develer.com
_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python