List of modules available for import inside Python?

Discussion in 'Python' started by ssecorp, Aug 28, 2008.

  1. ssecorp

    ssecorp Guest

    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?
     
    ssecorp, Aug 28, 2008
    #1
    1. Advertising

  2. ssecorp

    James Mills Guest

    On Thu, Aug 28, 2008 at 2:21 PM, ssecorp <> 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"
     
    James Mills, Aug 28, 2008
    #2
    1. Advertising

  3. ssecorp

    Chris Rebert Guest

    On Wed, Aug 27, 2008 at 9:21 PM, 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
    >
    >
    > Also, is there anything like Cpan for Python?


    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
    >
     
    Chris Rebert, Aug 28, 2008
    #3
  4. Fredrik Lundh, Aug 28, 2008
    #4
  5. On Aug 28, 6:21 am, ssecorp <> 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>
     
    Michele Simionato, Aug 28, 2008
    #5
  6. ssecorp

    Guest

    On Aug 28, 12:21 am, 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
    >
    > Also, is there anything like Cpan for Python?


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

    http://docs.python.org/modindex.html
     
    , Aug 28, 2008
    #6
  7. 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>
     
    Fredrik Lundh, Aug 28, 2008
    #7
  8. On Aug 27, 11:04 pm, Fredrik Lundh <> wrote:
    > 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>


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

    import pydoc
    pydoc.gui()
    (then click the 'open browser' button)
     
    Jason Scheirer, Aug 28, 2008
    #8
  9. ssecorp

    clurker Guest

    Michele Simionato wrote:

    > On Aug 28, 6:21 am, ssecorp <> 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...

    /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
     
    clurker, Sep 6, 2008
    #9
  10. En Sat, 06 Sep 2008 17:18:55 -0300, clurker <> escribió:

    > Michele Simionato wrote:
    >
    >> On Aug 28, 6:21 am, ssecorp <> 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
     
    Gabriel Genellina, Sep 7, 2008
    #10
  11. ssecorp

    sc Guest

    Gabriel Genellina wrote:

    > En Sat, 06 Sep 2008 17:18:55 -0300, clurker <>
    > escribió:
    >
    >> Michele Simionato wrote:
    >>
    >>> On Aug 28, 6:21 am, ssecorp <> 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)
    >


    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
     
    sc, Sep 7, 2008
    #11
  12. ssecorp

    Guest

    > > 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
     
    , Sep 10, 2008
    #12
  13. 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>
     
    Fredrik Lundh, Sep 10, 2008
    #13
  14. On Sep 10, 1:45 pm, Fredrik Lundh <> wrote:
    > 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
     
    Michele Simionato, Sep 10, 2008
    #14
  15. Michele Simionato wrote:

    > 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?


    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>
     
    Fredrik Lundh, Sep 10, 2008
    #15
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Remy Cool
    Replies:
    1
    Views:
    433
    Remy Cool
    Aug 27, 2003
  2. Benjamin Rutt

    getting list of all available modules

    Benjamin Rutt, Jun 21, 2005, in forum: Python
    Replies:
    2
    Views:
    377
    Peter Otten
    Jun 21, 2005
  3. Why Tea
    Replies:
    5
    Views:
    346
    Robert Kern
    Nov 17, 2006
  4. Luke Kenneth Casson Leighton
    Replies:
    0
    Views:
    432
    Luke Kenneth Casson Leighton
    Jan 18, 2009
  5. Sam
    Replies:
    2
    Views:
    85
    Ned Batchelder
    Jan 12, 2014
Loading...

Share This Page