Investigating the strange error that I started getting suddenly with gdb-python, I reduced it to:
C:\Users\User>python -i
Python 2.7.3 (default, Apr 10 2012, 23:31:26) [MSC v.1500 32 bit (Intel)] on win 32
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> dir(os.path)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'path'
>>> dir(os)
['__builtins__', '__doc__', '__file__', '__name__', '__package__']
Looking through some other answers 'module' object has no attribute, the most common assumption is that there sys.pathmust be another rogue os.pyand that it is loading, not built-in. But I checked in the environment variable PYTHONPATHand in the current directory, and there was no other os.py.
So, I was looking for a way to find the name of the file where the object was defined, and it is not surprising that Python has such an object in the form inspect.
>>> inspect.getsourcelines(os)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Programs\Python273\lib\inspect.py", line 690, in getsourcelines
lines, lnum = findsource(object)
File "C:\Programs\Python273\lib\inspect.py", line 527, in findsource
sourcefile = getsourcefile(object)
File "C:\Programs\Python273\lib\inspect.py", line 451, in getsourcefile
if os.path.exists(filename):
AttributeError: 'module' object has no attribute 'path'
So, inspectrelied on os.path, and then I ran out of ideas.
. , , , , Python script, Python script , .