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
Try the Python Cheese Shop / PyPi
cheers
James
--
--
-- "Problems are solved by method"
> 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>
Try:
>>> help()
help> modules
Please wait a moment while I gather a list of all available modules...
<snip>
>> 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>
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
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
> 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
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
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
> 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>
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
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>
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