Most tools I did were done to automate my daily tasks -- it's nice that they can also be used to automate things for others :)
Mu-repo: https://github.com/fabioz/mu-repo helped me dealing in a sane way with multiple git repositories (so, automating a lot of my git workflow).
PyDev: http://pydev.org -- PyDev was created by Aleks totic at the time, although I've been supporting it in the last 10 years -- so, I initially started contributing to automate a bunch of things (such as adding 'self' automatically when writing a method, navigating methods) -- IDE's are probably a perfect example as a lot of it is just automating daily tasks for programmers (which made my own life much easier when dealing with Python too).
PyVmMonitor: http://www.pyvmmonitor.com after getting tired of having to setup my programs to make a profile session I decided to make some automation for that (in PyVmMonitor you can just connect to a running process or launch a profile session directly from within PyDev/PyCharm).
Hi, before I answer I just wanted to note that I'm the PyDev author -- so, I may be biased :)
First, I'd like to say that PyDev can definitely measure up to any of the other Python IDEs -- as a tip here, make sure you read at least the starting guide: http://pydev.org/manual_101_root.html and http://pydev.blogspot.com.br/2014/03/mastering-writing-code-on-pydev.html -- now, having said that, IDEs are a really personal subject, so, no problem in checking some of the other IDEs and trying for yourself :)
I believe the current Python editing scenario for Pythonistas is actually stronger on the vi camp, after that I think that the other envs that are most used are PyDev, PyCharm, Emacs, PyScripter, SublimeText, Wing IDE, PVTS, and Spyder (although there are many other IDEs out there: https://wiki.python.org/moin/IntegratedDevelopmentEnvironments). As a note, this is just my personal feeling (and I'm the PyDev author, so, take it with a grain of salt)...
Anyways, I suggest you really try the IDEs out there and then decide for yourself :)
Work your way through Learn Python the Hard Way, a free book available online. It'll take you through setting up your environment first, although it uses Python 2, since Python 3 is still relatively new.
The book above just uses gedit and a terminal, but you can set up an IDE if you like. I've used Eclipse with the PyDev plugin and found it to be quite nice, although it's a bit heavy-weight (being Eclipse), so make sure you have a decent development machine with at least a couple of gigs of RAM if you're going to use it.
I'm a big fan of pydev plugin for Eclipse: http://pydev.org/ lots of nice features, and it is easy to setup multiple python interpreters for different versions of python. Pretty good debugging (and remote debugging) options with the builtin debugger, and nice support for unittests and other goodies.
Have you checked out Eclipse + PyDev? It's a great all in one IDE for Python development; I'm a big fan of it. I'm also on Project Euler and I use this setup in a "ProjectEuler" project with individual source files for each problem.
I'm a much bigger fan of NetBeans, personally. Check 'em both out, though, since I believe that PyDev (the Python environment for eclipse) is more mature than the Python plugin for NetBeans.
As for unit test frameworks, I'm not a fan, but JUnit is the defacto standard, for sure. Both NetBeans and Eclipse have full support for JUnit, though there has been some license brouhaha of late, so it may or may not be part of the standard install of either. When I installed NetBeans 7 Beta 2 (one of the best updates to NetBeans so far, BTW), it was a separate plugin install, but the install came up automagically during the main NetBeans install IIRC.
GUI designer wise, I'm not a huge fan, but I've heard plenty of good (and some bad) about Matisse (the NetBeans Swing GUI designer) and Window Builder, (the commercial Eclipse Swing & SWT GUI designer that Google bought and donated to the Eclipse foundation as open source).
Eclipse for everything.
It's the only one I've found with which I can code python, Java, PHP, JavaScript, HTML, XML, CSS and everything I need without switching IDE. It comes with a nice python plugin [1], also for debugging.
It might seem a bit of an overkill to most developers - it's definitely not just a light text editor - but it's a complete and open source solution.
I've used a handful of them. I've heard PyDev is a good plugin if you use Eclipse, though I usually prefer simpler text editors to full IDEs with code completion and debuggers.
Most recently I've been using Komodo Edit and Notepad++; not a huge difference between them.
Eclipse with PyDev (http://pydev.org):
The features for exploring your codebase would be:
F3 (or ctrl+click): Go to definition
Ctrl+Shift+T: Quickly filter/go to any definition available
F4: Create hierarchy for a class
Ctrl+Shift+G: Find all references to a token
Ctrl+O once: Show outline for the current class
Ctrl+O twice: Show outline for the current class and parents
PyDev Package Explorer: Browse packages/modules
Ctrl+H: Ultra-fast searches on your codebase
Debugger integration (visual inspection of variables, step by step, etc)
In a debug session, right-click a variable > get referrers to see the objects that refer to a variable (and you can go on recursively doing that in the referrers view).
If you want, you can still use vim or terminal as the IDE, but to explore your codebase, I find the PyDev features invaluable.
Well, there's currently no UI to change that.
However, this is implemented inside PyDev in Python, so, you can change the file:
/plugins/org.python.pydev.jython_XXX_version_XXX/jysrc/pyedit_wrap_paragraph.py
in your install to the value you want (search for editor.getPrintMarginColums() and change it for the value you'd like).
If you think it's worth it, you can create a feature request -- although there are already more feature requests that I'll probably be able to implement in the upcoming years in the PyDev tracker: https://sw-brainwy.rhcloud.com/tracker/PyDev... so, maybe if you really think it's worth it you could submit a pull request for that? Should be a matter of creating an additional preference on the 'Code style' preferences page (actually 2, one to override the default and another saying which value to be used if overridden), create a method to get it from the editor to be used in the Jython scripting and changing pyedit_wrap_paragraph.py to use that API -- see: http://pydev.org/developers.html for details on getting the code and setting up your local env :)
I dont mind comments being used. I use comments for type hiting in eclipse anyway, e.g. http://pydev.org/manual_adv_type_hints.html
It would be good to have it standardize, and so that all ides and text editors could rely on. And if python interpreter could enforce type checking, why not? Its yet another option in a hand of python programmers to use if needed.
By default PyLint is not enabled in PyDev but if you install PyLint on your system you can enable by following PyLint can be used with PyDev in the PyDev manual.
If it is up and running correctly you should see error and warning signs displayed to the left of the line numbers. To see if PyLint is working just create code that would create a warning such as
x = 1
x = 1
This should create a warning that says 'Unused variable x' on the first x = 1 statement.
PyLint has many configuration options and PyDev exposes just a few of them. I believe by default convention related messages are set to ignore so you may need to change that setting to see them.
> Let's look at Python...yup, all I see is a source tarball. No binaries for ANY distro there.
I talked about IDE, not about the environment. Ubuntu and other distros already package the latest Python, while packaged Mono is several major versions behind, so you likely don't need to install newer Python, but likely to need newer Mono. Let's look at Python IDEs:
PyDev: Immediately explains some hassle-free way to install it.
PyCharm: Detects Linux useragent, and immediately proposes download for Linux.
> Okay, maybe Ruby is different...nope, you can either download the source, or use RVM (ruby version manager),
Yes, you can (and should) easily install everything with RVM. It's a simple and clean way. What's your point? You can't do the same with Mono and NuGet. Also, IDEs like Aptana or RubyMine are easily installable from the official sites.
> So yes, I think you're a troll. Mono is no better or worse than any other similar software under Linux in this regard.
I think you are just a very obtuse fanboy without any real experience. As I already said, latest versions of all major IDEs like IDEA, NetBeans, Eclipse and QtCreator are very easy to install on Linux, so when you are saying that "Mono is no better or worse than any other similar software" you are positively full of shit.
I agree about IDE but if you are used to one, you will miss features by using a text editor as you have not yet adapted to the difference of styles, and may want to get immediately to producing stuff rather than working on editing tools and your understanding of tools. It's better to work a little inefficiently than to get discouraged and stop because you were slogging through intro to emacs or something. In that case, you may want to fight that battle later and punt with an IDE sooner.
A free one is PyDev http://pydev.org/ and a good commercial option for beginners is PyCharm http://www.jetbrains.com/pycharm/
Again, I do agree that in the long run it's nicer if you understand
I'd also like to take a minute to rant on how it was so much harder to install than it should have been. I could do it again in 5 minutes, but the first time took MUCH longer.
I downloaded eclipse.zip, moved enclosed eclipse directory to c: and run - FAILS. Eventually I figure out that you can't use WinXP's built in zip functionality, you have to use something like 7-zip. Try again and I've got eclipse running.
On the PyDev page, the install button says drag to eclipse workspace. I have tried dragging it everywhere, and nothing does anything. So I click on the Install button...
This takes me to the "Introducing the Eclipse marketplace Client" page which tells me to use Help --> Eclipse marketplace... fine except unlike the helpful picture on the page, my just-installed eclipse has no such menu item.
Finally after some searchng, I found a long walkthrough at http://pydev.org/manual_101_install.html
Sorry for that.
That shouldn't be necessary. Clicking on apply in interpreter preferences allows you to "restore" selected interpreters.
Edit: relevant manual link
If you want something free on Mac, perhaps Eclipse + PyDev. http://pydev.org/ A little heavy maybe, but the project management and code completion are great.
(Although I don't see the problem with TextWrangler myself..)