How is Python used in the real world?
However, looking at the job market, it doesn't seem very many Python jobs are web-related. On the desktop side of things, it doesn't seem like very many companies use the popular GUI libraries like pyQt or wxPython.
How are companies actually using Python? What areas should one focus on to land a job as a Python programmer?
Hi sq1020, we really can't tell you what you should learn or what's going to be fruitful to you. I've instead focused your question to be about the job market part of your original question; you can decide what you want to learn from that.
http://www.python.org/about/quotes/ describes some actual Python usage at some major companies.
If you're specifically interested in Django jobs, there's this site. I can't make claims for quality, I mainly do Ruby.
Take a look at OpenERP, this growing ERP is 100% python and is very powerful
The thing about interpreted languages is companies that don't want to give their source code away don't use it in delivered software, so almost all the jobs you will see are web related. You might have better luck searching for specific frameworks like Django. If there's an open source project written in python you like, you might apply to a company that sponsors it.
It usually won't make it into the job description, but it's almost an underground among programmers who use languages like C++ to use python when they have a choice, for one-off utilities, in-house applications, or things like automated test scripts that aren't shipped with their official product.
Some high-end software like Maya uses python for scripting, so that might be another route to pursue.
+1 for pointing out the "underground" nature of Python. For most programmers its a "secondary" language to supplement their C, C++, Java skills.
+1 for companies that don't want to give their source code away don't use it in delivered software
+1 couldn't agree more. Don't use python at work, but for applicable personal projects, it's my go-to language. With regards to the comment on implicitly distributing source, you can compile python to bytecode which will at least be slightly more difficult to reverse engineer.
+1 @karl I also think that it is mostly startups that tend to actually leverage the dynamic languages in production
+1 You described me to a "T" - embedded firmware development in C and C++ by day, but I use Python for writing utilities, one-offs, file-manipulation stuff, etc. on the host side.
Actually, Python can be compiled and shipped without source code. Check out the game Galcon for an example of a game that was developed using Python and PyGame. (http://pygame.org/project-Galcon-340-.html) (not sure if Galcon Fusion still is)
@CraigM To the best of my knowledge, in general, the various standard Python-to-exe solutions simply package your source code, its dependencies, and the Python interpreter into an executable package. There also exist some subsets / flavours of Python which *can* actually be compiled, such as PyPy, Cython, etc, but you could argue that it's not Python anymore. That said, I have no idea how Galcon was done.
I would downvote it solely for "_The thing about interpreted languages is companies that don't want to give their source code away don't use it in delivered software_". @DanielB: See eg. this link ("_The depth and breadth of Python_" by Guido van Rossum), beginning with "_Python plays an important role in Dropbox's success (...)_". It ends with this: "_beware that the source code is not included and the bytecode is obfuscated. Drew's no fool. And he laughs at the poor competitors who are using Java._".