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

Rispondere a