Articles / Python Projects

Python Projects

As I write this, there are almost 3,000 projects in freshmeat's C category and almost 1,500 in the Perl category, but there are only about 400 projects in the Python category. SourceForge has similar statistics. In this article, I hope to get more people to consider using Python in their next projects.

My first programming languages were C and Perl. I found C very fast and powerful, but I had constant battles with ever finishing the projects I started in it. I mainly used Perl for one-liners and throw-away scripts. I found that the C programs I wrote contained many lines of code for even the most trivial programs and the Perl programs contained very few lines of code but, due to Perl's cryptic nature, were so hard to read that it didn't really matter.

When I found what Python had to offer, I was amazed. I could write big applications very quickly, and the source code was always easy to read because of how Python is built. Best of all, Python is so easy to learn that you can literally learn it in a weekend just from reading the online tutorial. No expensive books are needed, though there are Python books out there.

There is a lot more to Python than what I can cover in this article, but I am going to show you a few Open Source projects that people have developed using Python, to give you a good idea of just what can be done with it.

If you want to write programs with a Graphical User Interface, there are a few options. Tkinter has been the standard for a while, but you'll probably enjoy either the PyGTK or wxPython toolkit more. Ivo van der Wijk is developing an IRC client in python-gtk called MoST. I have also written a somewhat-functional IRC client called Reptidle in my spare time using wxPython. PyQT is another toolkit to check out.

If you're interested in writing games, Pete Shinners's Pygame library is for you. Pygame, which wraps the SDL library, allows you to create fully-featured games in Python very easily. Pete has also written a couple of games using his library, including the addictive "SolarWolf", which is a remake of the old Atari 2600 game "SolarFox", and "Aliens", which is a demo game that comes bundled with Pygame and is great for learning to write descent games. Jan Ekholm and Gareth Noyce have been working on a Pygame-based realtime network strategy game called Civil for a couple of years now. Pygame also has interoperability with PyOpenGL, a cross-platform Python binding to OpenGL. The creator of Pygame, myself, and some other Pygame fanatics can be found on irc.openprojects.net in #pygame. Come on by anytime.

Games aren't the only thing Pygame is good for, though. There are also some multimedia applications being developed with it. The following are just a few of them:

  • Frank Raiser's PyFile, a graphical file browser.
  • David Clark's PyPanda, an application that streams webcam images from the San Diego Zoo Panda Cam.
  • imgv, a unique image viewer that I wrote (another shameless plug).

For you Web developers, there's a popular Open Source Application Server called "Zope". Zope allows you to create dynamic Web sites in a very object-oriented way. With Zope, everything is editable through the Web. It comes with its own Web server, and you can write Python scripts for it. Zope itself is mostly written in Python. The Zope Book is freely available online, and there is an IRC channel called #zope on irc.openprojects.net.

Twisted by Twisted Matrix Laboratories provides an Open Source framework for developing network applications in Python. Twisted takes a lot of the hassle out of development so you can focus on the good stuff. Currently, it has support for the FTP, HTTP, SMTP, IRC, telnet, POP3, AOL's instant messaging TOC, DNS, LDAP, finger, Echo, discard, chargen, and Perspective Broker protocols. It is constantly being developed by the guys of #python on irc.openprojects.net, so drop in if you have any questions.

Hopefully, after looking at some of the Python projects I've mentioned, you can see that Python is a powerful language that is suitable for real world applications. You can also extend and/or embed C/C++ with Python if you need more speed.

Recent comments

05 Apr 2006 07:40 Avatar reality11

Re: Mixed opinions...
please can u just teah me on how to start with these python programming.i will appreciate if u do it for me

12 Dec 2005 05:07 Avatar jalanb

Re: Not that bad!


> Plus, we don't need more Python projects

> per se, but more *useful* software,

> preferrably written in Python :-) I

> really don't need another MP3 cataloging

> software written in Python ;-)

OK, you don't, but I do. The great thing about OS is that we get the code, and the one thing a person writing an mp3 cataloging program needs (because none of the others is quite what I need) is exactly that: lots of other mp3 cataloging software written in Python.

OK, so I'm actually writing a different project altogether, not mp3 catloguer at all, but the principle is the same - the chance of any one project being the "last word" is minimal, so we need lots of different takes on each project, so that we can take a bit here, a bit there, and roll our own.

OS projects are for developers, not lusers.

15 Jun 2003 10:14 Avatar Versus

Re: Consider Ruby as well

> Yes, and nice textmode user interface,
> see JTTui- textmode user interface.
> Does python have something similar?
> ;-)
>

Python has curses module.

15 Feb 2003 13:53 Avatar arschlesinger

Don't Forget Jython
I find Java much easier to use than C and C++ and the object system is most definitely better than the procedural systems of C, and the object system of C++.

I think that Java is, however, a harder language to learn than Python, but it is faster. Why not use Python inside of Java with Jython? I installed Jython today, and haven't started using it yet, but I see the benefits to it already. A Python script can exist in another file inside of a JAR and can perform some very complicated network operations or get some OS information easily and then give that information easily to a Java object. The only reason to do this is because in some instances, Python is easier to use than Java, but in some cases, Java is better to use than Python, such as GUI programming.

Also, apps can be created very easily with robust plugin architectures, and users could write plugins with either Python or Java.

Python is becoming the next glue language, and it is 100X easier to use and read than Perl.

17 Apr 2002 23:45 Avatar Thinman

Re: Not that bad!

> I'm a great fan of Python myself, but in
> my opinion, the numbers aren't that bad.
> Python vs. Perl 1:3 that might be
> relatively close to the number of
> programmers, there might even be more
> than 3 times the number of Perl
> programmers than there are Python
> programmers.
>
> Plus, we don't need more Python
> projects per se, but more *useful*
> software, preferrably written in Python
> :-) I really don't need another MP3
> cataloging software written in Python
> ;-)


Hey... in Pyhton the most important things are the
modules.... Make more modules... Let others make
their projects....

Screenshot

Project Spotlight

Kigo Video Converter Ultimate for Mac

A tool for converting and editing videos.

Screenshot

Project Spotlight

Kid3

An efficient tagger for MP3, Ogg/Vorbis, and FLAC files.