On Wed, Aug 27, 2008 at 9:21 PM, 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: > import.modules
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:
prueba...@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.
> 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:
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...
/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...
>> 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 wrote: > 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)
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))
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...
On 2008-09-10, deni...@t-online.de <deni...@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.