ho incontrato top_level_script.py
e ottenuto un'eccezione con una traccia dello stack come:Significato assoluti/percorsi relativi a stack trace pitone
File "top_level_script.py", line 114, in main
…
File "top_level_script.py", line 91, in func1
...
File "top_level_script.py", line 68, in func2
**kwargs)
File "/home/max/.../cccc/ffff/mmmm.py", line 69, in some_func
obj = SomeClass(…)
File "mmm/ttt/bbb/core.py", line 17, in __init__
File "/home/max/.../pppp/pppp.py", line 474, in func
...
File "/home/max/.../pppp/pppp.py", line 355, in some_func
...
noti che mmm/ttt/bbb/core.py
ha un percorso relativo mentre il telaio sopra e sotto di essa hanno percorsi assoluti . Inoltre, non vi è alcuna stampa fuori linea 17, in __init__
e il codice chiamato era "vecchio". L'ho appena cambiato, ma il vecchio codice veniva chiamato. Da qui l'eccezione.
Trovo ancora confuso il meccanismo di importazione di Python. Qualcuno può chiarire cosa succede con core.py
e qual è il significato, se esiste, del percorso relativo mostrato in quella cornice?
Dopo alcuni tentativi, la mia ipotesi era che Python in qualche modo chiamasse lo .pyc
(quindi nessuna fonte mostrata nella riga sottostante). Dopo armeggiare con il file (vale a dire la modifica e il salvataggio), io ora ottenere:
File "top_level_script.py", line 114, in main
…
File "top_level_script.py", line 91, in func1
...
File "top_level_script.py", line 68, in func2
**kwargs)
File "/home/max/.../cccc/ffff/mmmm.py", line 69, in some_func
obj = SomeClass(…)
File "/home/max/.../mmm/ttt/bbb/core.py", line 17, in __init__
...
File "/home/max/.../pppp/pppp.py", line 474, in func
...
File "/home/max/.../pppp/pppp.py", line 355, in some_func
...
Ora, io non riesco a riprodurre l'effetto, ma io sono ancora curioso di sapere se qualcuno sa che cosa può essere accaduto.