This issue tracker has been migrated to GitHub ,
and is currently read-only.
For more information,
see the GitHub FAQs in the Python's Developer Guide.
Created on 2008年01月03日 19:26 by AstraLuma, last changed 2022年04月11日 14:56 by admin. This issue is now closed.
| Files | ||||
|---|---|---|---|---|
| File name | Uploaded | Description | Edit | |
| regen | AstraLuma, 2008年01月03日 22:07 | The original python script which I found the bug with. | ||
| Messages (12) | |||
|---|---|---|---|
| msg59145 - (view) | Author: Jamie Bliss (AstraLuma) | Date: 2008年01月03日 19:26 | |
Something about distutils/cmd.py breaks inspect.findsource(). I am unsure if this is a bug with DistUtils or the inspect module. >>> import inspect, distutils.cmd >>> inspect.findsource(distutils.cmd.install_misc.get_outputs) Causes findsource() to receive an IndexError. From some hacking, I've found that the root cause appears to be that linecache.getlines() returns a number of lines that do not match the actual file. (In my case, getlines() returns 405 lines when distutils/cmd.py has 478 lines.) This bug causes pydoc to break when it is pointed at distutils.cmd. This is on Ubuntu Gutsy, Python 2.5.1 |
|||
| msg59147 - (view) | Author: Raghuram Devarakonda (draghuram) (Python triager) | Date: 2008年01月03日 19:42 | |
I can't reproduce it with 2.5.1 on SuSE 10. Can you please report the exact traceback you see? |
|||
| msg59150 - (view) | Author: Jamie Bliss (AstraLuma) | Date: 2008年01月03日 19:55 | |
sqlite3/test/types.py also seems to cause the same error, although the difference is much wider (101 lines vs. 351). |
|||
| msg59151 - (view) | Author: Jamie Bliss (AstraLuma) | Date: 2008年01月03日 19:57 | |
The exact traceback is as follows: >>> findsource(distutils.cmd.install_misc.get_outputs) Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/lib/python2.5/inspect.py", line 510, in findsource if pat.match(lines[lnum]): break IndexError: list index out of range |
|||
| msg59157 - (view) | Author: Guido van Rossum (gvanrossum) * (Python committer) | Date: 2008年01月03日 20:53 | |
Can't repro either. I strongly suspect that this is because somehow linecache finds a different version of the module on sys.path. |
|||
| msg59159 - (view) | Author: Jamie Bliss (AstraLuma) | Date: 2008年01月03日 21:30 | |
Indeed. For the distutils.cmd case, linecache.updatecache() takes "cmd.py" and tracks that down to /usr/lib/python2.5/cmd.py. This would also explain the sqlite3.tests.types problem. The bug seems to be that the inspect module doesn't pass enough context information to linecache to unambiguously locate the file. |
|||
| msg59161 - (view) | Author: Guido van Rossum (gvanrossum) * (Python committer) | Date: 2008年01月03日 21:35 | |
Can you trace this a bit further? Can you suggest a specific modification that would fix this issue? |
|||
| msg59162 - (view) | Author: Raghuram Devarakonda (draghuram) (Python triager) | Date: 2008年01月03日 21:41 | |
When I printed the file name that is being passed to linecache.getlines() by findsource(), the file name is absolute path. So there may be nothing wrong with linecache itself. Can you see what is the name being passed in your case? We still need to trace what specific setting on OP's system is causing the problem. |
|||
| msg59167 - (view) | Author: Jamie Bliss (AstraLuma) | Date: 2008年01月03日 22:07 | |
depending on the use case, updatecache() will be passed 'distutils/cmd.py', but still turn that into '/usr/lib/python2.5/cmd.py'. I have not messed with my stock Python modules. My sys.path is: * /usr/lib/python2.5/site-packages/recaptcha_client-1.0.1-py2.5.egg * /usr/lib/python25.zip * /usr/lib/python2.5/lib-dynload * /usr/lib/python2.5/site-packages/Numeric * /usr/lib/python2.5/site-packages/PIL * /usr/lib/python2.5/site-packages/wx-2.8-gtk2-unicode * /usr/lib/python2.5/site-packages * /usr/lib/python2.5 * /usr/lib/python2.5/plat-linux2 * /usr/lib/python2.5/lib-tk * /usr/local/lib/python2.5/site-packages * /usr/lib/python2.5/site-packages/gst-0.10 * /var/lib/python-support/python2.5/pyinotify * /var/lib/python-support/python2.5 * /usr/lib/python2.5/site-packages/gtk-2.0 * /var/lib/python-support/python2.5/gtk-2.0 * /usr/lib/site-python I've also attached the script I used to discover the bug originally. (Much larger than the snippets I've been pasting here.) Just be warned that it writes a large number of files and produces considerable output. |
|||
| msg59170 - (view) | Author: Christian Heimes (christian.heimes) * (Python committer) | Date: 2008年01月03日 23:10 | |
The issue is probably related to http://bugs.python.org/issue1665 |
|||
| msg59171 - (view) | Author: Guido van Rossum (gvanrossum) * (Python committer) | Date: 2008年01月03日 23:12 | |
Do you happen to be on Ubuntu? Maybe this is the same as issue #1665 ? |
|||
| msg59195 - (view) | Author: Jamie Bliss (AstraLuma) | Date: 2008年01月04日 00:39 | |
They might be the same bug, with different manifestations. That bug is starting to get rather annoying. (At first, I thought it wasn't. Surprise, surprise.) |
|||
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2022年04月11日 14:56:29 | admin | set | github: 46069 |
| 2008年01月04日 01:11:43 | gvanrossum | set | status: open -> closed resolution: duplicate superseder: re.match.func_code.co_filename returns "re.py" |
| 2008年01月04日 00:39:33 | AstraLuma | set | messages: + msg59195 |
| 2008年01月03日 23:12:07 | gvanrossum | set | messages: + msg59171 |
| 2008年01月03日 23:10:39 | christian.heimes | set | nosy:
+ christian.heimes messages: + msg59170 |
| 2008年01月03日 22:07:29 | AstraLuma | set | files:
+ regen messages: + msg59167 |
| 2008年01月03日 21:41:02 | draghuram | set | messages: + msg59162 |
| 2008年01月03日 21:35:13 | gvanrossum | set | messages: + msg59161 |
| 2008年01月03日 21:30:50 | AstraLuma | set | messages: + msg59159 |
| 2008年01月03日 20:53:17 | gvanrossum | set | nosy:
+ gvanrossum messages: + msg59157 |
| 2008年01月03日 19:57:07 | AstraLuma | set | messages: + msg59151 |
| 2008年01月03日 19:55:33 | AstraLuma | set | messages: + msg59150 |
| 2008年01月03日 19:42:28 | draghuram | set | nosy:
+ draghuram messages: + msg59147 |
| 2008年01月03日 19:26:29 | AstraLuma | create | |