Python: Difference between revisions

From Wildsong
Jump to navigationJump to search
Brian Wilson (talk | contribs)
mNo edit summary
Brian Wilson (talk | contribs)
mNo edit summary
Line 52: Line 52:


I am writing a web application in Python right now so I have another page started.
I am writing a web application in Python right now so I have another page started.
[[Python for Web Development]]
[[Python for Web Applications]]


==== Some relevant Ubuntu packages ====
==== Some relevant Ubuntu packages ====

Revision as of 16:53, 11 September 2013


About this page

Wow, it's been a long time since I touched this page! I actually know how to program in Python now, so I don't need to update it.

Okay... I don't know Python + Opensource GIS, so I found this link: http://www.gis.usu.edu/~chrisg/python/2009/

At my day job, I use Python mostly for ESRI Geoprocessing. I stopped using perl some time ago for general purpose scripting, it's easier keeping just one scripting language in my head at a time. I do miss all those semicolons though so I do C/C++/C# to get my share of them.

From the first edition of this page: This page contains random notes on how I am using Python and will change as I learn what works and does not work for me.

IDE

Komodo

I use ActiveState Komodo, which is not free but I think it's worth it. I think it's about $300. That is for a 'personal' license which means I have permission to install it on all my computers. I admire this approach - I only use one computer at a time. For free, they have a stunted editor "Open Komodo" but I need the debugger.

If you try the eval version you won't want to go back to PythonWin.

Wing

Wing is another commercial Python IDE. I tried it, it is probably really good. I think it has Iron Python support which is something I hope to see in Komodo.

I have a coworker who uses it and we compare notes from time to time. It's equivalent to Komodo. Take your pick.

Eclipse

Eclipse is my last choice for Python.

SPE

http://pythonide.stani.be/ Python IDE

GUI

So far I have used Python for scripting operations such as geoprocessing. Now I am at the stage where I want to start designing GUI based applications especially ones that can be portable between Windows and Linux.

Currently I am trying out PyQT.

I also tried wxWindows and wxPython. I found the designer to be less useful than QT4 Designer.

wxWindows http://wxwindows.org/ a portable GUI platform for forms based on GTK

wxWidgets http://wxwidgets.org/ the widgets used by wxWindows.

Web development

I am writing a web application in Python right now so I have another page started. Python for Web Applications

Some relevant Ubuntu packages

For PyQT, there is a set of QT packages.

For wxPython, boa-constructor RAD tool http://boa-constructor.sourceforge.net/ (Application runs under Linux and Windows) Last release was in 2007, not a good sign. Maybe it's perfect? There is a commercial product that is probably the spirtual heir to boa-constructor called wxDesigner. See http://www.wxdesigner-software.de/

python-card GUI construction framework http://pythoncard.sourceforge.net/ "PythonCard is a GUI construction kit for building cross-platform desktop applications on Windows, Mac OS X, and Linux, using the Python language." I still have fond memories of HyperCard so this one is interesting to me.

python-wxglade GUI designer

python-wxtools

python-wxversion

Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius — and a lot of courage — to move in the opposite direction. -- Albert Einstein

Databases

From the ArcGIS perspective, I can access geodatabases using ArcObjects but for the frequent occasions when it runs out of gas, I can tap into the underlying databases.

For shapefiles I can use dbfpy to read and write the attributes, which are stored in the .dbf file.

For personal geodatabases I can tap into the MDB using either ODBC or OLEDB. See Accessing Personal Geodatabases with Python

For file geodatabases... well, ESRI has not released specs yet so I use PGDB's.

Geoprocessing

Content from this section has moved to the Geoprocessing page.

Network programming

I am trying to tear apart packets with Python to write some network code. I am using a module called Scapy and I have started a separate page to keep notes on it.

XML

I am trying to parse a GPX document, so that I can write an ESRI feature class as output. I want to be able to give the script away, so I need to work with the version of Python that is installed with ESRI ArcGIS. When working with ArcGIS, the choices for XML are

Actually I just got source from http://arcscripts.esri.com/ that I only need to update a bit. It's using the xml.etree flavour. Look here: http://arcscripts.esri.com/details.asp?dbid=16797

External Links

dbfpy for accessing .dbf files

Python on Windows CE (and Pocket PC)


http://pyswarm.sourceforge.net/

http://plone.org/about/movies

Links into official python docs

TUTORIAL http://docs.python.org/tut/tut.html

GENERAL http://docs.python.org/

STRINGS http://docs.python.org/lib/string-methods.html

http://diveintopython.org/