Tôi chạy top_level_script.py
và có một ngoại lệ với một vết đống như:Ý nghĩa của/đường dẫn tương đối tuyệt đối trong python stack trace
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
...
ý rằng mmm/ttt/bbb/core.py
có một đường dẫn tương đối trong khi khung trên và dưới nó có đường dẫn tuyệt đối . Ngoài ra, không có bản in ra khỏi dòng 17, trong __init__
và mã được gọi là "cũ". Tôi chỉ thay đổi nó, nhưng mã cũ đã được gọi. Do đó ngoại lệ.
Tôi vẫn thấy cơ chế nhập khẩu của Python đôi khi khó hiểu. Bất cứ ai có thể làm sáng tỏ những gì với core.py
và những gì là ý nghĩa, nếu có, của con đường tương đối được hiển thị trong khung đó?
Sau khi một số tinkering, giả thuyết của tôi là python bằng cách nào đó đang gọi số .pyc
(do đó không có nguồn nào được hiển thị trong dòng bên dưới). Sau khi mày mò với các tập tin (ví dụ: thay đổi và lưu nó), bây giờ tôi nhận được:
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
...
Bây giờ, tôi không thể tái tạo các hiệu ứng nhưng tôi vẫn tò mò nếu có ai biết được điều gì có thể xảy ra.