console command to get the path of a function

0 views
Skip to first unread message

mattia

unread,
Dec 20, 2009, 7:45:40 AM12/20/09
to
Hi all, is there a way in the python shell to list the path of a library
function (in order to look at the source code?).

Thanks, Mattia

Irmen de Jong

unread,
Dec 20, 2009, 7:53:18 AM12/20/09
to

something like this?

>>> import inspect
>>> import os
>>> inspect.getsourcefile(os.path.split)
'C:\\Python26\\lib\\ntpath.py'
>>> print inspect.getsource(os.path.split)
def split(p):
"""Split a pathname.
...
...


--irmen

mattia

unread,
Dec 20, 2009, 8:08:21 AM12/20/09
to

Perfect, thank you.

mattia

unread,
Dec 20, 2009, 8:13:43 AM12/20/09
to
Il Sun, 20 Dec 2009 13:53:18 +0100, Irmen de Jong ha scritto:

Ok, but how can I retrieve information about built-in functions (if any)?

>>> inspect.getsourcefile(itertools.product)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python31\lib\inspect.py", line 439, in getsourcefile
filename = getfile(object)
File "C:\Python31\lib\inspect.py", line 406, in getfile
raise TypeError('arg is a built-in class')
TypeError: arg is a built-in class

Peter Otten

unread,
Dec 20, 2009, 8:30:21 AM12/20/09
to
mattia wrote:

To get to the source of functions written in C you have to download the
source distribution, or you can browse the subversion tree:

http://svn.python.org/view/python/trunk/Modules/itertoolsmodule.c?view=markup

Peter

Dave Angel

unread,
Dec 20, 2009, 10:34:46 AM12/20/09
to mattia, pytho...@python.org

If you know what module it's in, you can use
themodule.__file__

But realize that this will only work if the module has been imported,
and might not if the module is implemented in C.

DaveA

Terry Reedy

unread,
Dec 20, 2009, 3:02:12 PM12/20/09
to pytho...@python.org
On 12/20/2009 7:45 AM, mattia wrote:
> Hi all, is there a way in the python shell to list the path of a library
> function (in order to look at the source code?).

On Windows and I believe other systems, for the stdlib, 'import x'
imports .../Pythonx.y/Lib/x


pograph

unread,
Dec 20, 2009, 3:40:42 PM12/20/09
to

Not always. For example, os.path is actually in one of ntpath.py,
posixpath.py, or macpath.py.

Reply all
Reply to author
Forward
0 new messages