List of modules available for import inside Python?

9339 views
Skip to first unread message

ssecorp

unread,
Aug 28, 2008, 12:21:36 AM8/28/08
to
Is there a way to view all the modules I have available for import
from within Python?
Like writing in the interpreter:
import.modules


Also, is there anything like Cpan for Python?

Chris Rebert

unread,
Aug 28, 2008, 12:54:23 AM8/28/08
to ssecorp, pytho...@python.org

The closest thing would be PyPI (the Python Package Index)
[http://pypi.python.org/pypi], and easy_install (a package manager for
Python) [http://peak.telecommunity.com/DevCenter/EasyInstall].

- Chris
========
Follow the path of the Iguana...
Rebertia: http://rebertia.com
Blog: http://blog.rebertia.com

> --
> http://mail.python.org/mailman/listinfo/python-list
>

James Mills

unread,
Aug 28, 2008, 12:48:58 AM8/28/08
to ssecorp, pytho...@python.org
On Thu, Aug 28, 2008 at 2:21 PM, ssecorp <circul...@gmail.com> wrote:
> Also, is there anything like Cpan for Python?

Try the Python Cheese Shop / PyPi

http://pypi.python.org/pypi

cheers
James

--
--
-- "Problems are solved by method"

Fredrik Lundh

unread,
Aug 28, 2008, 2:04:53 AM8/28/08
to pytho...@python.org
ssecorp wrote:

> Is there a way to view all the modules I have available for import
> from within Python?
> Like writing in the interpreter:
> import.modules

there's a helper script in the 2.5 source code kit that locates all
existing standard modules:

http://svn.python.org/projects/python/tags/r252/Doc/tools/listmodules.py

to get all modules, remove the for-loop that follows after the comment
"get rid of site packages".

also see:

http://effbot.org/zone/listmodules-cgi.htm

</F>

Michele Simionato

unread,
Aug 28, 2008, 2:12:04 AM8/28/08
to
On Aug 28, 6:21 am, ssecorp <circularf...@gmail.com> wrote:
> Is there a way to view all the modules I have available for import
> from within Python?
> Like writing in the interpreter:

Try:

>>> help()
help> modules
Please wait a moment while I gather a list of all available modules...
<snip>

prue...@latinmail.com

unread,
Aug 28, 2008, 10:42:29 AM8/28/08
to

Isn't the most obvious answer to the first question this link?

http://docs.python.org/modindex.html

Fredrik Lundh

unread,
Aug 28, 2008, 12:10:43 PM8/28/08
to pytho...@python.org
prue...@latinmail.com wrote:

>> Is there a way to view all the modules I have available for import
>> from within Python?
>> Like writing in the interpreter:
>> import.modules
>>
>> Also, is there anything like Cpan for Python?
>
> Isn't the most obvious answer to the first question this link?

depends on whether you want a list of the modules that you might be able
to import, or the modules that are actually present on your system.

</F>

Jason Scheirer

unread,
Aug 28, 2008, 2:23:01 PM8/28/08
to

I like to direct new users to pydoc's built-in HTTP server:

import pydoc
pydoc.gui()
(then click the 'open browser' button)

mblume

unread,
Aug 28, 2008, 3:32:13 PM8/28/08
to
Am Thu, 28 Aug 2008 11:23:01 -0700 schrieb Jason Scheirer:
>
> I like to direct new users to pydoc's built-in HTTP server:
>
> import pydoc
> pydoc.gui()
> (then click the 'open browser' button)
>

Now, this is cool !

Thanks a lot!

Martin

clurker

unread,
Sep 6, 2008, 4:18:55 PM9/6/08
to
Michele Simionato wrote:

This looks like it could be a useful tool, but when I try it
I get the following:

Please wait a moment while I gather a list of all available modules...

/usr/lib/python2.5/site-packages/reportlab/lib/PyFontify.py:35:
Warning: 'with' will become a reserved keyword in Python 2.6
/usr/lib/python2.5/site-packages/reportlab/lib/PyFontify.py:36:
Warning: 'with' will become a reserved keyword in Python 2.6
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.5/site.py", line 346, in __call__
return pydoc.help(*args, **kwds)
File "/usr/lib/python2.5/pydoc.py", line 1645, in __call__
self.interact()
File "/usr/lib/python2.5/pydoc.py", line 1663, in interact
self.help(request)
File "/usr/lib/python2.5/pydoc.py", line 1679, in help
elif request == 'modules': self.listmodules()
File "/usr/lib/python2.5/pydoc.py", line 1797, in listmodules
ModuleScanner().run(callback)
File "/usr/lib/python2.5/pydoc.py", line 1848, in run
for importer, modname, ispkg in pkgutil.walk_packages():
File "/usr/lib/python2.5/pkgutil.py", line 110, in walk_packages
__import__(name)
File "/usr/local/lib/python2.5/site-packages/PIL/__init__.py", line 1342,
in <module>

File "/usr/local/lib/python2.5/site-packages/PIL/__init__.py", line 927,
in main

UnboundLocalError: local variable 'given_files' referenced before assignment
>>>

which could be because I am fairly free and unrestrained when
it comes to installing stuff, and I see now I have modules
on both /usr/lib/python2.5 and /usr/local/lib/python2.5

Apparently python knows about them both, but I don't know I
haven't introduced an incompatibility somewhere...and that PIL
package showing up at the tail of the errors was one of my
more recent additions...

Any help will be appreciated,

sc

Gabriel Genellina

unread,
Sep 7, 2008, 7:32:30 AM9/7/08
to pytho...@python.org
En Sat, 06 Sep 2008 17:18:55 -0300, clurker <nos...@spamhaters.com> escribió:

> Michele Simionato wrote:
>
>> On Aug 28, 6:21 am, ssecorp <circularf...@gmail.com> wrote:
>>> Is there a way to view all the modules I have available for import
>>> from within Python?
>>> Like writing in the interpreter:
>>
>> Try:
>>
>>>>> help()
>> help> modules
>> Please wait a moment while I gather a list of all available modules...
>> <snip>
>
> This looks like it could be a useful tool, but when I try it
> I get the following:
>
> Please wait a moment while I gather a list of all available modules...

[...]


> File "/usr/local/lib/python2.5/site-packages/PIL/__init__.py", line 1342,
> in <module>
>
> File "/usr/local/lib/python2.5/site-packages/PIL/__init__.py", line 927,
> in main
>
> UnboundLocalError: local variable 'given_files' referenced before assignment
>>>>

Unfortunately the "modules" help command actually imports all the available packages, and a buggy one may stop the whole process with an error.

> Apparently python knows about them both, but I don't know I
> haven't introduced an incompatibility somewhere...and that PIL
> package showing up at the tail of the errors was one of my
> more recent additions...

If import of a package fails, the error reported is not accurate. In this case, probably some other package failed, that itself imported PIL. Line 927 in PIL/__init__.py does not exist.

A quick fix is to replace line 1854 in pydoc.py (ModuleScanner.run) with this one:

for importer, modname, ispkg in pkgutil.walk_packages(onerror=lambda name:None):

(the onerror argument makes it to ignore all errors)

--
Gabriel Genellina

sc

unread,
Sep 7, 2008, 4:56:54 PM9/7/08
to
Gabriel Genellina wrote:

nice Gabriel, thanx! At least now "help(); modules" gives me a beautiful
list -- I guess I'll find out what the buggy module is if/when I try
to use it...(all PIL/__init__.py is is about 15 lines of comments
(referencing a README I can't find))

sc

den...@t-online.de

unread,
Sep 10, 2008, 6:52:09 AM9/10/08
to
> > A quick fix is to replace line 1854 in pydoc.py (ModuleScanner.run) with
> > this one:
>
> >         for importer, modname, ispkg in
> >         pkgutil.walk_packages(onerror=lambda name:None):
>
> > (the onerror argument makes it to ignore all errors)

well not all, for example
GLUT: Fatal Error in summon: could not open display: :0.0

So to refine the question:
how can I list all modules that might be importable on my system,
without actually importing them all ?

(How about a "pydoc2" that's well thought out, doesn't crash ...
let me ask more knowledgable people, what's a good small help system
as model ?
)

cheers
-- denis

Fredrik Lundh

unread,
Sep 10, 2008, 7:45:54 AM9/10/08
to pytho...@python.org
den...@t-online.de wrote:

> how can I list all modules that might be importable on my system,
> without actually importing them all ?

I'm pretty sure I mentioned a way to do that back when this thread was
opened. let's see, yes, here it is:

...

there's a helper script in the 2.5 source code kit that locates all
existing standard modules:

http://svn.python.org/projects/python/tags/r252/Doc/tools/listmodules.py

to get all modules, remove the for-loop that follows after the comment
"get rid of site packages".

also see:

http://effbot.org/zone/listmodules-cgi.htm

...

</F>

Michele Simionato

unread,
Sep 10, 2008, 8:10:09 AM9/10/08
to
On Sep 10, 1:45 pm, Fredrik Lundh <fred...@pythonware.com> wrote:

> deni...@t-online.de wrote:
> >    how can I list all modules that might be importable on my system,
> >    without actually importing them all ?
>
> I'm pretty sure I mentioned a way to do that back when this thread was
> opened.  let's see, yes, here it is:
>
> ...
>
> there's a helper script in the 2.5 source code kit that locates all
> existing standard modules:
>
> http://svn.python.org/projects/python/tags/r252/Doc/tools/listmodules.py
>
> to get all modules, remove the for-loop that follows after the comment
> "get rid of site packages".

I have just tried the following on my Ubuntu box with the system
Python:

~$ python /usr/lib/python2.5/doc/tools/listmodules.py
/usr/lib/python2.5/doc/tools/listmodules.py:99: DeprecationWarning:
the rgbimg module is deprecated
__import__(m)

** (process:24863): WARNING **: AT_SPI_REGISTRY was not started at
session startup.

** (process:24863): WARNING **: Could not locate registry
location: /usr/lib/xulrunner-1.9.0.1/libxpcom.so
before 3
/usr/lib/python2.5/doc/tools/listmodules.py:99: Warning: cannot
register existing type `GtkSourceStyleScheme'
__import__(m)
/usr/lib/python2.5/doc/tools/listmodules.py:99: Warning:
g_type_set_qdata: assertion `node != NULL' failed
__import__(m)
/usr/lib/python2.5/doc/tools/listmodules.py:99: Warning: cannot
register existing type `GtkSourceBuffer'
__import__(m)
/usr/lib/python2.5/doc/tools/listmodules.py:99: Warning:
g_type_get_qdata: assertion `node != NULL' failed
__import__(m)
Segmentation fault

Interesting, isn't it?

Michele Simionato

Fredrik Lundh

unread,
Sep 10, 2008, 8:43:17 AM9/10/08
to pytho...@python.org
Michele Simionato wrote:

it does indeed import modules found in the path if they appear to be
Python C extensions. why Ubuntu puts badly written C modules in their
default Python path is more than I can tell...

</F>

Anita Kean

unread,
Sep 10, 2008, 5:57:06 PM9/10/08
to
On 2008-09-10, den...@t-online.de <den...@t-online.de> wrote:
> (snip) ...

>
> So to refine the question:
> how can I list all modules that might be importable on my system,
> without actually importing them all ?
>
> (How about a "pydoc2" that's well thought out, doesn't crash ...
> let me ask more knowledgable people, what's a good small help system
> as model ?
> )

I'm constantly finding myself wishing for this feature -
something of the "apropos"/"whatis" of the linux shell (and debian's
"apt-cache search" and "apt-cache show" which allow you to search
and query before you install).
(Matlab's "help" and "lookfor" commands cover this too.)

Is there a reason this type of information hasn't been made available
by default in the help system?
I'm constantly using find, grep and Usenet to find out what python tools
I can use.

Anita

sorim...@gmail.com

unread,
Oct 21, 2016, 12:21:27 AM10/21/16
to
Finally, I have found it! Thanks a lot!
Reply all
Reply to author
Forward
0 new messages