New submission from Paul Pinterits:
The file paths displayed in exception tracebacks have their symlinks resolved.
I would prefer if the "original" path could be displayed instead, because
resolved symlinks result in unexpected paths in the traceback and can be quite
confusing.
An example:
rawing@localhost ~> cat test_scripts/A.py
import B
B.throw()
rawing@localhost ~> cat test_scripts/B.py
def throw():
raise ValueError
rawing@localhost ~> ln -s test_scripts test_symlink
rawing@localhost ~> python3 test_symlink/A.py
Traceback (most recent call last):
File "test_symlink/A.py", line 2, in <module>
B.throw()
File "/home/rawing/test_scripts/B.py", line 2, in throw
raise ValueError
ValueError
As you can see, even though both scripts reside in the same directory, the file
paths displayed in the traceback look very different. At first glance, it looks
like B is in a completely different place than A.
Furthermore, this behavior tends to trip up IDEs - PyCharm for example does not
understand that test_scripts/B.py and test_symlink/B.py are the same file, so I
end up having the same file opened in two different tabs.
Would it be possible to change this behavior and have
"/home/rawing/test_symlink/B.py" show up in the traceback instead?
----------
components: Interpreter Core
messages: 300926
nosy: Paul Pinterits
priority: normal
severity: normal
status: open
title: File paths in exception traceback resolve symlinks
type: behavior
versions: Python 2.7, Python 3.6
_______________________________________
Python tracker <[email protected]>
<http://bugs.python.org/issue31289>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com