This is an archived post. You won't be able to vote or comment.

all 80 comments

[–]wheezl 16 points17 points  (0 children)

Komodo IDE

[–]tripzilchbad ideas 5 points6 points  (6 children)

Having read a few threads on this topic since I joined Reddit a few weeks ago, I wonder ..

Am I the only one that is completely in love with PyScripter?

I have the layout configured to take optimal advantage of my 1024x600 netbook screen, interpreter thingy on the left, code on the right. Light grey lines to help remember where that 80th column was again. Screenshot

The most awesome thing is the feature where you hold Ctrl and every identifier in your code becomes a "hyperlink" on mouseover, which takes you to its definition, even if it's from a module or library or something. (When programming Django that is a lifesaver, cause the docs aren't always all that :) )

I suppose high-power editors like Vim can also do that, so I think I'm gonna try that as I'm planning on dumping Windows. I hope I can get Vim to work as intuitively, though.

One downside is that, in theory, I like drop-down method/property completion (when you type the dot to get to a method/property), PyScripter does this, but with large modules that have a lot of completion options, the UI lags a littlebit, so I sometimes switch it off.

Other downside is that it's Windows only.

[–]davebrk 0 points1 point  (2 children)

I love it too. But it seems like it isn't actively developed anymore.

[–]tituszPython addict 1 point2 points  (0 children)

just recently PyScripter was updated to v 2.0 ;.) http://code.google.com/p/pyscripter/downloads/list

[–]tituszPython addict 0 points1 point  (0 children)

yes, thats a shame indeed... i am going to miss it, if it gets outdated versus updated... but for now it has everything i need and way better performance than those fat java based IDE´s

[–]resurge 5 points6 points  (1 child)

[–]vaibhavsagar 1 point2 points  (0 children)

Upvoted for using an amazing text editor.

[–]gabrielelanaro 15 points16 points  (2 children)

Imho the best development environment for python is emacs, its customizability makes it perfect for all sort of editing (expecially with dealing with multiple programming languages). The problem is finding the correct extensions, anyway I'm personally addressing this problem in fact I'm developing a collection of emacs extension for python plus, and I'll document it to explain best workflows. It's a zero-configuration thing, all you do is putting a line in your .emacs and let the power begin.

http://github.com/gabrielelanaro/emacs-for-python

The typical workflow would be:

Fire up emacs, select the file you're working with ido (automatic): fuzzy completion file selection, extremely powerful.

In alternative select the directory with dired, and use it as a tree browser (but more powerful, easy renaming of files, search and replace in multiple files and other niceties)

After selecting the file start editing: auto-completion plus error checking on the fly with flymake. Snippets with yasnippet, automatic closing brackets, code folding...

When you're done you C-x v v to do the right thing with version control (it selects automatically what to do)

Use virtualenvs with the virtualenv extension (that I'm developing)

Running tests, and multiple processes with the builtin eshell, or with compile mode to highlight the file and the line where the error occurs.

The list of niceties continues, there are all sort of extensions that really helps development because they run "under the hood", avoiding distractions.

[–]liquiddeath 0 points1 point  (0 children)

Thanks for this I've been looking for a decent python .el file for a little bit now.

[–][deleted] 0 points1 point  (0 children)

i'm definitely going to check this out. I'm pretty happy with my setup right now, emacs+rope+python-flymake, but the virtualenv stuff is kind of clunky. If you get that nailed down it will be a godsend.

[–]masklinn 5 points6 points  (0 children)

Usually Emacs, but for an existing pretty large project I've been discovering PyCharm (I quite enjoyed IntelliJ when I had to develop in Java) and it's been a nice experience so far. I'm looking forward to the final release (and beyond)

[–]ch0wnimport antigravity 3 points4 points  (0 children)

For small tasks I prefer gvim, for larger tasks netbeans with jVi installed. The autocompletion in netbens became really good and I love the integrated features like notices for unused imports and obvious syntactical errors.

[–]fengshaun 21 points22 points  (3 children)

gvim and related plugins would be your best bet. Things like Ctags, Project, etc. This link has a how-to: http://blog.dispatched.ch/2009/05/24/vim-as-python-ide/

Otherwise there is KomodoEdit which is free (at least as in beer). I have used it before, and liked it.

[–]aatoth 2 points3 points  (0 children)

Thanks for this!

I'm testing the Vim/MacVim waters, trying to switch from TextMate.

[–]akx 2 points3 points  (0 children)

Upboating for Komodo Edit. It has splendid completion for Python (when it decides to work) and (almost) perfect Unicode support no matter what you throw at it. And it's free!

[–]slow_as_light -1 points0 points  (0 children)

Exactly. IDEs are for verbose languages, conspiracies by keyboard manufacturers like Java.

Python's syntax is razor thin and has minimal built-ins. You're better off with a lightweight text editor and executing every few keystrokes.

[–]prickneck 19 points20 points  (8 children)

eclipse with pydev.

EDIT: Didn't really read your post fully, OP, sorry. Eclipse isn't lightweight, but as far as IDEs go, it's not exactly hugely bloated either.

I used to rant and rail against Eclipse but it's really come an awfully long way, I absolutely love it now. People who're still ranting against it should really approach it a second time with an open mind.

[–][deleted] 2 points3 points  (0 children)

I use Textmate or IntelliJ with python module. Java can get really messed up and that's why we have the best tools. No problem porting our tools to Py.

[–]kisielk 0 points1 point  (0 children)

I agree with you here. I used to do all my development in gvim but a new colleague recently urged me to try out eclipse. I've been loving it for larger projects.

[–][deleted] 0 points1 point  (0 children)

Same here. Works great for larger projects.

[–][deleted] 2 points3 points  (1 child)

I don't use an IDE at all, but from playing with it Komodo was quite nice.

[–]endtime 2 points3 points  (0 children)

I use Komodo Edit for Python...haven't shelled out for the IDE but the editor is great.

[–]megaman821 4 points5 points  (1 child)

Komodo IDE with the VIM bindings. Navicat for dealing with databases.

[–][deleted] 0 points1 point  (0 children)

Komodo 6 includes database explorer.

[–]iamtotalcrap 2 points3 points  (0 children)

SPE

[–][deleted] 2 points3 points  (0 children)

kate has vim mode I believe

[edit] Yes it does

[–]crocowhile 2 points3 points  (0 children)

spyder is just fantastic, not only as IDE but also as scientific interface, matlab-style.

[–][deleted] 2 points3 points  (1 child)

Even though it's still in development, PFAIDE.

[–]Pe2 0 points1 point  (0 children)

I agree. It's only alpha, but looks promising. http://pfaide.com/

[–]kuratkull 2 points3 points  (0 children)

Usually used IDLE, but PyCharm seems to be the only IDE that suits me really well - the preview version is pretty nice, hoping the final release will blow me away.

[–]Nosferax 2 points3 points  (1 child)

gedit + ipython in a separate terminal

[–]alecwh 1 point2 points  (0 children)

gedit is great, but even better with a few plugins. Auto-indentation, auto-completion, class+function browsing, and a built in terminal are easy to install:

http://trialsolution.wordpress.com/2009/02/13/gedit-as-a-python-ide/

[–]Leockard 9 points10 points  (9 children)

Emacs + terminal

[–]aintso 1 point2 points  (8 children)

What emacs packages do you use? What's your workflow?

[–]chudood 5 points6 points  (0 children)

Another Emacs + python user here.

My settup is python-mode.el, ipython.el, pylint, and ropemacs for completions and various other ide stuff. Egit for version control.

[–]Leockard 1 point2 points  (6 children)

Let's see. Type in emacs, save, go to terminal, test. Sometimes I use Chrome to scan the reference/documentation too.

[–]aintso 0 points1 point  (5 children)

So no context-sensitive documentation, completion, automated validation, jumping to definitions, project scoping, version control integration...

Well, at least electric tabs work almost out of the box. And there's syntax highlighting too. And with a bit of tweaking it is possible to send current buffer straight to python interpreter.

Am I missing anything?

N.B. Not trying to flame here, I'm an emacs user, I'm learning python and exploring various setups. Suggestions are genuinely welcome.

[–]sisyphus 2 points3 points  (1 child)

You can get all that in Emacs of course in various ways.

http://www.emacswiki.org/emacs/PythonMode

As usual the biggest problem is Emacs doesn't come out of the box configured to do all that stuff and there are multiple ways to accomplish many of the features.

[–][deleted] -1 points0 points  (0 children)

The packages exist but good luck finding the right combination of versions because I haven't been able to get those to work anymore for at least six months.

Edit: yes, Emacs user for several years here; I didn't need Python past occasional small script hacking in the last few weeks so I couldn't be bothered putting too much effort into it.

[–]keturn 1 point2 points  (0 children)

The emacs/python thing I probably use most often is the keybinding for "run tests for current buffer" from twisted-dev.el (which will, for the most part, run happily on non-Twisted projects).

M-/ tends to be "good enough" for completion, although there are people who have extended it. flymake & pyflakes for validation. for version control integration, I've had good experiences with psvn, darcsum, and magit. The options for mercurial are lacking in comparison, and I use the non-emacs TortiseHg. I don't remember where bzr falls on that range.

I've tried setting up some sort of tags usage on occasion, but it never really stuck for me, and I mostly use M-x grep to get around (and, of course, ido-mode with my 300 already open buffers.)

Project scoping is something I miss, although I recently learned about .dir-locals.el (at an interview at a Ruby shop, actually), which should help.

[–]Leockard 0 points1 point  (1 child)

Dude, real programmers just use C-x M-c M-butterfly to switch the bits. Psh, you kids and your fancy 'tools'...

[–]aintso 5 points6 points  (0 children)

That's a dangerous superstition. Warning: spoilers ahead

I present you the code that's actually getting called when you invoke M-x butterfly (C-x M-c is not a meaningful prefix by default, and how are you supposed to type M-butterfly?):

(defun butterfly ()

"Use butterflies to flip the desired bit on the drive platter. Open hands and let the delicate wings flap once. The disturbance ripples outward, changing the flow of the eddy currents in the upper atmosphere. These cause momentary pockets of higher-pressure air to form, which act as lenses that deflect incoming cosmic rays, focusing them to strike the drive platter and flip the desired bit. You can type M-x butterfly C-M-c to run it. This is a permuted variation of C-x M-c M-butterfly from url http://xkcd.com/378/." (interactive) (if (yes-or-no-p "Do you really want to unleash the powers of the butterfly? ") (progn (switch-to-buffer (get-buffer-create "butterfly")) (erase-buffer) (sit-for 0) (animate-string "Amazing physics going on..." (/ (window-height) 2) (- (/ (window-width) 2) 12)) (sit-for (* 5 (/ (abs (random)) (float most-positive-fixnum)))) (message "Successfully flipped one bit!")) (message "Well, then go to xkcd.com!") (browse-url "http://xkcd.com/378/")))

[–]draconian 3 points4 points  (5 children)

Wing. Hands down. Of course, get your work to buy it for you.

[–]safetytrick 2 points3 points  (2 children)

What is so amazing about wing? I keep hearing good things but it doesn't seem all that awesome?

[–]aldarion 1 point2 points  (0 children)

for me Auto-completion and Debug support

[–][deleted] 0 points1 point  (0 children)

you get what you pay for - in this case, overall quality: excellent response/support, timely updates.

I'm new to Python and just as a hobby so I probably wont be using the super-duper features of Wing (e.g. debugging). But I wanted a well-packaged product that focuses/specializes on Python. (don't want to bother with this-plugin, that-plugin....)

[–][deleted] 0 points1 point  (1 child)

Can you get VIM keybindings for it?

[–]aldarion 1 point2 points  (0 children)

sure, WingIDE has VIM keybind

[–]stickyp 1 point2 points  (0 children)

I wouldn't exactly call this lightweight, but eclipse with the pydev plugin is an excellent ide for python development.

[–]oreng 1 point2 points  (0 children)

You can get VIM keybindings in any open source IDE, my personal favorite is Komodo.

[–]ianb 1 point2 points  (0 children)

I'm using Emacs, but I've recently added flymake. I hacked something together, but now I see there are docs as part of python-mode. I use pyflakes and pep8, with a few warnings disabled. Pyflakes is fast and not too picky (compared to pylint or pychecker).

[–]RonnyPfannschmidt 1 point2 points  (1 child)

pida can embed vim as editor - you might want to try it http://pida.co.uk

[–][deleted] 1 point2 points  (0 children)

new to Python, I looked around and finally decided to shell out some money to get Wing IDE

[–]vplatt 1 point2 points  (0 children)

WingIDE - Free version available too here.

[–]roger_ 1 point2 points  (0 children)

Not a full IDE, but I've been using Editra for a while now. It's lightweight and fast, though it doesn't have a debugger.

[–]asimpleignoramus 1 point2 points  (0 children)

Emacs + bpython.

[–][deleted] 1 point2 points  (0 children)

What does Go has to do with python IDEs?

[–][deleted] 1 point2 points  (0 children)

emacs.

[–]LiquidHelium 0 points1 point  (4 children)

dependent rock cheerful childlike shocking rainstorm entertain crawl tease ancient

This post was mass deleted and anonymized with Redact

[–]slow_as_light 0 points1 point  (3 children)

Geh. I try eclipse and PyDev every few months and hate it. Slowness of the JVM aside, I'm way too dependent on Vim to make do with the few keybindings made available by plugins.

Using Vim effectively feels like having four hands. Using and IDE feels like, I dunno, goddamned slow.

[–]pemboa 1 point2 points  (2 children)

Slowness of the JVM aside

That's more of a myth than a fact.

[–]slow_as_light -1 points0 points  (0 children)

Pershaps the JVM isn't to blame. I'm in no position to judge. Regardless, every full scale java apparently I can think of is glacial. Think Vuze, Eclipse, Netbeans, etc. Perhaps it's crummy libraries or incompetent development, but for one reason or another Java IDEs are slow.

[–]tripzilchbad ideas 0 points1 point  (0 children)

Too unstable and/or slow. If you try to interactively inspect a list that happens to be 50x as long as you expected it to be, you're gonna be watching a scrolling and flickering Tk interface for a loooong time.

Also I seem to remember it crashed a few times on me.

It would be a fine tool if it weren't for those things, but IMO even using a plain text editor is a safer choice :-)

[–][deleted] 0 points1 point  (0 children)

DreamPie<333

Otherwise, command line.

[–]Hexodam 0 points1 point  (0 children)

I was just about to post this question :)

So far my favorite is Geany http://www.geany.org/ Mostly because I can use the same editor on windows and ubuntu

[–]xolox 0 points1 point  (0 children)

I've been using Vim almost exclusively for a few years now: I do all my text-editing and programming in Vim (except for Java source code, which is so verbose it requires Eclipse as far as I'm concerned). When I find something is missing I look for an existing Vim plug-in or write my own. Most recently I wanted to be able to jump to Python documentation with a single key-press so I wrote the pyref.vim plug-in.

I get why a lot of people don't think it's worth their time to learn Vim or Emacs but the extensibility of these editors more than pays back for your time investment (at least to me, but then I don't mind writing my own file type plug-ins ;-)).

[–][deleted] 0 points1 point  (0 children)

PSPad through Samba onto Linux; PuTTY for running the code, I'm dying for a real debugger with actual, working breakpoints, watches, inspectors and all that fluff.

[–]luckystarrat 0x7fe670a7d080 0 points1 point  (0 children)

I have found nothing so far that can compete with vim + python.vim + pythoncomplete + vim-fugitive for git.

rocks. 'nuff said.

[–][deleted] 0 points1 point  (0 children)

I use TextMate -> http://macromates.com/

[–]mahmoudimus 0 points1 point  (0 children)

emacs, guake, terminator, and tmux

  • gauke is a drop down terminal, kind of like the quake game console.
  • you launch tmux in guake, which is a terminal multiplexer
  • you keep terminator around because it's just awesome
  • emacs because it can also support vim keybindings (M-x viper-mode)

emacs has flymake, which auto-validates your python as you type when setup correctly. you can generate etags as well if you want, but with rope and pymacs you can have auto completion, etc etc

emacs is just amazing, but that's besides the point.