Portable apps in python

ciw42 mail at cleatorwilson.co.im
Sun Feb 22 23:36:16 EST 2004


Hi Koen,

Recently wrote a full point-of-sale (till) application in Python/wxPython to run on Windows, and aside from a few fiddly areas (mostly due to the fact I was fighting the way Windows wants to do things - the app needed to be able to work entirely from a keyboard, mouse, touch-screen or any combination) it was a breeze. I've only been programming in Python for a month now after years of Delphi, and to be fair, the application was just a re-write of a 75% finished Delphi version, so all the design had been completed in advance.

For printing, you'll find that most POS printers use serial interfaces (our client already had the hardware) so I downloaded and used the Serial library (PySerial) and Epsom printer programming manual. Using these, it only took an hour to put together routines to print receipts and invoices, open the till drawer (they're usually linked into the back of the receipt printer) and automatically cut receipts. If you need to use parallel printers, there's an equivalent library for those too.

The software is actually running live on a client site, and they're very happy with it. I'd say that's a good indication of both the stability and speed of development possible using the Python/wxPython combination.

In terms of portability, I took care to only use libraries which were cross platform, and whilst I've not fully tested it, the application seems to run fine on my SuSE v9.0 machine. The only minor problem is that the main window doesn't automatically maximize to fill the screen, but I knew this would be the case from reading the wxWindows documentation.

As the client platform was Windows with a Linux server running MySQL, and the project deadline was tight, I actually developed the software on a Windows XP machine. I'd recommend always developing on the target platform, as there's nothing worse than finding a fundamental target platform specific problem late on in a project, and it's often the platform specific bits that take the time to learn when using new libraries.

Regards,


Chris




More information about the Python-list mailing list