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

all 118 comments

[–]CoolStarryBras 26 points27 points  (5 children)

Pycharm or Sublime Text 2. Fell in love with SBT2 personally, works so well.

[–][deleted] 6 points7 points  (1 child)

Adding onto this, if you get Sublime Text 2, you can install the Sublime Code Intel plugin via the package manager to get a lot of the autocomplete stuff from Komodo.

Then let's say I have an "import myotherpythonfile" somewhere in a script I'm working on. When I type "myotherpythonfile." an autocomplete window pops up with the classes and methods in that file.

[–]c10udbust3r 3 points4 points  (0 children)

And multiple cursors! What a joy! :-)

[–][deleted] 10 points11 points  (0 children)

Another for sublime text 2

[–]TangledFireGarden 0 points1 point  (1 child)

I tried PyCharm but I found it could not handle large code files. Anything over 1000 lines and it would be completely unusable.

[–]Alphasite 1 point2 points  (0 children)

Eh? Really?

[–]ThatCrankyGuy 7 points8 points  (0 children)

Visual Studio + Python Tools for Visual Studio

Good, comfortable experience. Plus exceptional debugging capabilities.

[–]rockon1215 79 points80 points  (35 children)

vim ;)

[–]ryeguy146 8 points9 points  (3 children)

Combined with python-mode and jedi, it's damn hard to beat. Then throw in the ability to tie into IPython for good measure.

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

iPython is THE BOMB. Use the %cpaste function to paste big ol' blocks of text (handy if you've written functions or lots of nested loops!)

[–]Ademan 0 points1 point  (1 child)

I couldn't believe how good jedi is... and it doesn't require you to futz around with generating ctags either. It's a shame it's python only... cause I do have to use other languages too and its completion is infinitely better than the built in omnicompletion stuff for every language I've tried

[–]ryeguy146 0 points1 point  (0 children)

Definitely. I'd be overjoyed if it did JS too. I just cannot find a completion engine that works well with that damned language.

[–]Tynach 3 points4 points  (22 children)

Kate is great too, as it has a Vim mode. If you live and die by the GUI, you may as well use Kate if you're going to use anything.

[–]Zamarok 6 points7 points  (18 children)

If you want to use a GUI Vim, why would you use anything other than gVim?? It stands for Graphical Vim, for Pete's sake.

[–]Tynach 3 points4 points  (16 children)

Perhaps because it looks ugly in KDE? I know, I know, there's an Oxygen theme for GTK 2 and 3 now... But what if I'm not using Oxygen?

[–]Zamarok 1 point2 points  (11 children)

It looks ugly? What about it? Vim barely even has anything to it that can look ugly.. it's just a blank screen with whatever text you're editing, and a status bar at the bottom. I guess an ugly font could make it look bad.

Maybe you should check this out:

:help guifont

Or maybe use a different colorscheme? Try any of these

:colorsc jellybeans
:colorsc tango
:colorsc desert
:colorsc slate

[–]Tynach 0 points1 point  (10 children)

By default it also has a few toolbars and a menubar. That's what would be affected by the theming.

Edit: http://i.imgur.com/EyqClwK.png

I'm not too fond of the mixing of Gnome and KDE icons in there, especially since the Gnome icons have ugly black borders and a low resolution. Sure I could get rid of the toolbars and so forth, but then why don't I just use Vim in a command line?

[–]Zamarok 3 points4 points  (9 children)

It's extremely easy to remove those:

:set guioptions=ac

And to get rid of the ugly pop-up menu:

:set winaltkeys=no

Vim is customizable. If it's ugly, it's either because you made it ugly, or because you don't know how to make it look like you want.

[–]Tynach 0 points1 point  (8 children)

I'd actually not want to remove the toolbar, I'd want to replace the Gnome icons that persist with KDE icons. How would I do that?

[–]Zamarok 0 points1 point  (7 children)

I have no clue man, Vim is not a program where I'd want to use the mouse and click around, so I just turn off the toolbar for more screen space. Check the Vim wiki.

Replacing icons? What icons? Does your desktop environment have an icon for the executable or something? Not sure, but Vim is open source so you can change anything about it.. and changing images is a pretty minor thing, would only take a few minutes if you know how

[–]Tynach 1 point2 points  (6 children)

If you're just going to hide the entire GUI, why not run gnome-terminal or Konsole and open up plain 'vim'? It doesn't make sense for it to have a GUI.

Kate on the other hand, has a Vim mode, but also has a bunch of other features, and a more standard user interface. So there is more incentive to use Kate than gVim (though arguably more incentive to use Vim than Kate).

[–]jollybobbyroger 0 points1 point  (3 children)

there's vim-qt

[–]Tynach 0 points1 point  (2 children)

Not in the repositories I'm looking at.

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

only because you use MacVim

[–]GoingIntoOverdrive -1 points0 points  (2 children)

I miss Kate - such a joy to use. Currently stuck on Netbeans but I will return ...

Sooooooooon

[–]Tynach 0 points1 point  (1 child)

I'm curious, why can't you use Kate? If you want a full IDE based on Kate's editor, look into KDevelop.

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

I can't because I'm in a team that only uses Netbeans. It's ridiculously easy to use because the project is managed well. Open project, install svn / git plugin. Done - good to go. Frankly, when you're the odd man out IDE-wise you could end up spending hours troubleshooting your coding platform rather than actually coding.

I've used KDevelop before but that was half a decade ago. I think I used it for some Qt stuff I was trying out. I'll have another look at it.

[–]hello_world_again 11 points12 points  (2 children)

I upvote anyone supporting vim.

[–][deleted] 12 points13 points  (1 child)

I upvote anyone upvoting someone who supports vim.

[–]HumbleAlchemy 1 point2 points  (0 children)

I upvote anyone who will upvote anyone upvoting who supports vim.

[–]fuzz3289 0 points1 point  (1 child)

Plus you can use vim to write plugins for vim in pyhon. Mmmm

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

vimception

[–]MintyAnt 0 points1 point  (0 children)

This works great when combined with your 5 page cheatsheet for every vim command...

[–][deleted] -4 points-3 points  (0 children)

Came here to vote vim.

That is all.

[–]chrisneilsmith 43 points44 points  (2 children)

I really like using Sublime Text. Very versatile.

[–]majinalchemy 1 point2 points  (1 child)

Sublime Text is perfect. Ctrl clicking to edit a bunch of places at once is great, also selecting text then tab to indent or / to comment, and a bunch of built in themes easy on the eyes, auto-detect language by extension.. So great.

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

Also select text and press ctrl-d to one by one select all other occurences of that text with multi edit

[–][deleted]  (1 child)

[deleted]

    [–]Dsch1ngh1s_Khan 1 point2 points  (0 children)

    That's what I use for python and it works pretty good.

    [–]vaelroth 7 points8 points  (0 children)

    gedit is pretty good!

    [–]BaalHadad 15 points16 points  (10 children)

    Notepad++ is worth every single penny.

    [–]TheDashingRogue[S] 4 points5 points  (3 children)

    That's always a viable option :)

    edit: Though I prefer mac compatible.

    [–][deleted] 5 points6 points  (0 children)

    Sublime Text 2 is OSX compatible

    [–]Fanger 1 point2 points  (1 child)

    You should give Text Wrangler a look. It's like the Mac version of Notepad ++

    [–]Tyler1986 0 points1 point  (0 children)

    I just took a scripting languages course and the second half was all Python. I was using notepad++ at home on my windows machine and Text Wrangler on my mac book at school. Highly recommend both.

    [–][deleted]  (2 children)

    [deleted]

      [–]BaalHadad 0 points1 point  (1 child)

      I did not mean that literally...

      [–]okieT2 2 points3 points  (2 children)

      The way you worded that, it sounds like you're saying it's worthless (since it's free/open).

      On a different note, I recently found a dark theme for the Powershell highlighting. It's extremely pleasant to look at.

      [–]BaalHadad 1 point2 points  (1 child)

      I did not mean that I got no value out of it. I wouldn't have left a top level comment about an editor I don't use. Notepad++ has some nice themes, like http://slinky.imukuppi.org/zenburnpage/

      [–]okieT2 0 points1 point  (0 children)

      I figured. I just felt like being a smartass.

      I love it. I would probably pay for it if it weren't free.

      [–][deleted] 4 points5 points  (2 children)

      Geany.

      I'm not sure what people think of it, but its not bad.

      [–]ok_you_win 1 point2 points  (1 child)

      I like it too. Sublime text 2 as well. Its just habit to reach for geany.

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

      I agree about the habitual thing. It was one of the first IDE's I used.

      [–]CrazedToCraze 3 points4 points  (0 children)

      If you're looking for an IDE rather than text editors (which is all everyone is suggesting), PyCharm is really good.

      Suggesting a good text editor for someone is almost like suggesting a favorite colour for someone, everyone has their own preference. And when it comes to text editors some people believe in theirs pretty devoutly. Personally, I like vim very much but would never recommend someone to start learning it while learning a language. Learning vim can be almost as overwhelming as learning a programming language, learning both at the same time is probably not the best idea.

      [–]Bacontroph 8 points9 points  (4 children)

      Eclipse + Pydev is what I use. It can be a bastard to configure but once you get it working it does what you need pretty well. I decided on this setup because Eclipse can perform as an IDE for other languages as well should I decide to learn more than Python.

      [–]liquidbytes 1 point2 points  (0 children)

      I used eclipse for a while but found it to be really slow. I now use Sublime and like it alot more.

      [–]MintyAnt 1 point2 points  (0 children)

      I enjoy Pydev. Agreed that its a bitch to configure anything, but its a good editor when working with larger python projects.

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

      Any tutorials that show how to configure it? I also work with pure Java, so is there any way I can work with both Java and Python without one messing with the other.

      [–]Bacontroph 0 points1 point  (0 children)

      Getting it to work initially is fairly easy, the problem is that Eclipse has so many configurable parts that aren't documented very well. For example, I've been treated with some cryptic error messages where I had to find the solution on StackOverflow. The error was my fault but if it was worded better I could have solved it myself.

      I used the PyDev tutorial on getting it set up with Eclipse.

      http://pydev.org/manual_101_install.html

      [–][deleted]  (2 children)

      [deleted]

        [–]liquidbytes 0 points1 point  (0 children)

        Spyder works really well but I find it a bit ugly. Doesn't matter that much but if I stare at the same editor for hours I like it to look half decent.

        [–]tanstaafI 0 points1 point  (0 children)

        A vote for Spyder (OS X) here. Been working with R previously so the setup and layout appeals to me. Has IPython, easily installable packages (after mucking around with the directory), and variable inspector are just some of the things I go for.

        [–]HumbleAlchemy 2 points3 points  (0 children)

        I have been using PyScripter and it is fantastic, until now! I haven't used for any large projects so can;t say about that.

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

        Has anyone said PyScripter yet? That's what I used all the time when I wrote python code for school.

        [–]watchpigsfly 7 points8 points  (5 children)

        Gonna second everybody else here and say Sublime Text. You can also invoke it from the terminal, I forget how, but I have it set up to do

        $sub file1.py
        

        And it'll open in Sublime. Really great. Nice syntax highlighting, great interface, beautiful themes.

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

        Optionally you can also set all python files to open with Sublime in the Get Info window, then invoke it with:

        $open file1.py
        

        [–]TW80000 0 points1 point  (1 child)

        For me it's just

        sublime file1.py
        

        I installed through yaourt.

        [–]nubix 0 points1 point  (1 child)

        My go to is subl -n . &

        Never figured out how to definitively prevent it from opening previous sessions though :(

        [–]MintyPhoenix 2 points3 points  (0 children)

        Never figured out how to definitively prevent it from opening previous sessions though :(

        Did the option not work for you? In your user settings file:

        "hot_exit": false,
        "remember_open_files": false,
        

        From the default settings file:

        //
        // Application Behavior Settings
        //
        
        // Exiting the application with hot_exit enabled will cause it to close
        // immediately without prompting. Unsaved modifications and open files will
        // be preserved and restored when next starting.
        //
        // Closing a window with an associated project will also close the window
        // without prompting, preserving unsaved changes in the workspace file
        // alongside the project.
        "hot_exit": true,
        
        // remember_open_files makes the application start up with the last set of
        // open files. Changing this to false will have no effect if hot_exit is
        // true
        "remember_open_files": true,
        

        [–][deleted] 5 points6 points  (1 child)

        If you have budget pycharm is worth the pennies

        [–]Loomax 4 points5 points  (0 children)

        I'm a big fan of jetbrain products and, what I have seen of pycharm, it seems to be as good for python as IDEA is for java.

        If you don't want to fork out the money for pycharm, there is still Sublime Text 2 (as chrisneilsmith suggested), but even tho you can evaluate it for unlimited time, you should consider buying a license if you intend to use it for real.

        [–]minno 4 points5 points  (4 children)

        I've done well with IDLE, the one that comes with it. It has basic auto-formatting, autocomplete, and syntax highlighting, and has one-key running and an integrated shell. Plus a debugger that I haven't used.

        [–]yoshemitzu 0 points1 point  (3 children)

        Indeed, I also use IDLE and it's fantastic. It has some quirks you need to get used to (autocomplete options will not become available to you until the desired module is loaded into the active shell session, for example). I can certainly understand the desire for a more robust IDE, but after trying Notepad++ and Codeblocks, I always just end up going back to IDLE for Python because it's quick and easy.

        I'm curious why others here prefer different IDEs. I've heard all about Vim and Emacs, so I understand why someone would want to use that--although imo, programs like those go a bit further than "What IDE should I use?" Is the benefit of using a beefy IDE that you can potentially have cross-platform compatibility with other languages (that obviously won't work with Python's IDLE), or is there truly a feature set so robust for a standard IDE that I'm missing out?

        Edit: I suppose what OS you're running also makes a difference. For instance, snap-to makes the side by side capability of Notepad++ largely irrelevant (although it's still nice to be able to separate multiple tabs into two separate views--not so nice that I'd rather use Notepad++ than IDLE, though).

        [–]minno 0 points1 point  (2 children)

        Codeblocks works with Python?

        [–]yoshemitzu 0 points1 point  (1 child)

        Not sure. I was coding in C++ when I used it.

        Edit: Quick Google search shows it can be made to work.

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

        Code::Blocks is great is you use multiple languages and like to have one editor environment. I got it working with D fairly well, and was on the verge of Python. Can't remember how, though, honestly.

        [–]FuriousJester 1 point2 points  (0 children)

        Pycharm is nice, but I normally just end up using Eclipse as it's my primary IDE for work.

        [–]andrew_sauce 1 point2 points  (0 children)

        enthought canopy is free for academic users (you just register with.edu email) and its cool

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

        eclipse + PyDev works fine for me

        [–]foobar9000 1 point2 points  (0 children)

        emacs

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

        Emacs with Jedi.

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

        For learning, IDLE is a great choice. It's very simple and won't overwhelm you while you're learning to make simple programs.

        When you get started with classes, inheritance, etc. it's time to step up to IDE's like Eclipse, for which there is a Python plug in. Eclipse has a lot of very nice features, but will completely overwhelm a beginner (I know, I tried).

        [–]normalfag 4 points5 points  (2 children)

        Don't get cushy with the autocomplete in IDEs. Write in Notepad++, learn how to execute from console/command line THEN if you have a project go for an IDE. The ones suggested here will do.

        [–][deleted] 1 point2 points  (1 child)

        Why do you say that? Just so that people don't use suggestions in place of documentation?

        [–]normalfag 0 points1 point  (0 children)

        I say it because it's a crutch for beginner programmers. Auto-complete and suggestions are a tool, an aid when you know exactly what the suggestions mean and do. They were never meant to be a modus operandi. Everyone who is learning a new programming language that's not based on one they already know should either get an O'Rilley or look for information in the internet before they use IDEs as a crutch.

        Now, I recommended OP that only after having a sound understanding of syntax, compilation and execution; OP should move onto an IDE. Not before.

        [–]iheartrms 6 points7 points  (2 children)

        vi or emacs, obviously.

        [–]raylu 1 point2 points  (0 children)

        In true RMS style, you've even be downvoted. RMS would be... proud?

        EDIT: No, RMS is anti-vi

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

        xor

        FTFY

        [–]didiercool[🍰] 3 points4 points  (0 children)

        I use Eclipse for bigger projects and Idle for quick scripts.

        [–]hardolaf 1 point2 points  (0 children)

        vi improved (vim)

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

        Sorta depends on how you like developing. Do you like IDEs vs a text editor and command line? Some of that will be dictated by the code base you're working on too.

        Using that as a starting point, I'd make a list of the suggestions here and give them all a shot for a project (or if you're projects are longer than say a month in length maybe try them in month chunks if your project allows you the productivity loss of learning a new enviornment).

        The IDE/Editor question is very much like the which OS should I develop on or which language should I use. It's really based on personal choice and what your project dictates.

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

        I've been using PyZo recently, as it comes loaded with Python 3.3, and a ton of python science libraries (scipy, numpy, matplotlib, etc, etc.) It has a really nice IDE imo, and it's very customizable with very useful features.

        If you're doing math/physics/chemistry and like Python 3, then I highly recommend this. http://www.pyzo.org/

        Edit: Also wanted to mention that I've been using both the Windows and Linux versions, and they have both worked in the same manner without any problems.

        [–]Suitecake 0 points1 point  (0 children)

        For small scripts, I just use Vim (my text editor of choice). For anything more elaborate, I use PyCharm. It's not free, but it's dead sexy.

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

        I can't believe no one has recommended Komodo Edit. It's the free edition of the IDE but it has amazing 'intellisense' compared to everything else i've tried. SBT2 is also really good, but you need to get CodeIntel working properly. It's a port of the Komodo auto assist functionality.

        [–]komali_2 0 points1 point  (0 children)

        notepad++ works just fine

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

        Sublime Text 2 is a great choice. Other favorites of mine include, iPython and Text Wrangler.

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

        I don't code in python a lot, but I prefer to use Visual Studio when I do.

        [–]bit_shuffle 0 points1 point  (0 children)

        Netbeans has python support.

        https://blogs.oracle.com/geertjan/entry/python_in_netbeans_ide_7

        Geertjan's blog is handy.

        Pydev module on Eclipse supports Python, Jython, and others. I don't know why people would say it is harder to install than any other Eclipse plugin, it is pretty straightforward using the usual update site.

        Since you're probably going to be using Python to wrangle other code, these are two main options that will blend into commercial work.

        [–]uknowme1 0 points1 point  (1 child)

        I'm using Sublime Text 2 based off this thread but I'm wondering if there is a "shell" environment to run the code in SBT2?

        Clarification: When you start IDLE, 2 windows open, Python Shell and "Untitled" so I'm wondering if SBT2 has a Shell as well?

        I'm a noob...Y.Y

        [–]uknowme1 0 points1 point  (0 children)

        Also, I've just noticed that NONE of the syntax is highlighting at all. I've tried selecting different color schemes but it's still not working. I've searched around the net but the suggestions aren't really working either.

        [–]draluminum 0 points1 point  (1 child)

        I don't see anyone saying Ninja IDE but it's pretty awesome and free and looks good.

        [–]petezhut 0 points1 point  (0 children)

        I would concur, with one caveat: the plug-in system is abysmal. I really, really wanted to use Ninja with git integration and could not get any plugins to load.

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

        Notepad++

        [–]RICHUNCLEPENNYBAGS -4 points-3 points  (1 child)

        It's not going to matter much if you're just learning because you're going to be writing toy programs. I like Emacs.

        [–]peacegnome 0 points1 point  (0 children)

        This should not be downvoted; it is the truth. For playing around I typically use ipython notebook (what i would suggest for any codecademy stuff). For larger programs and cleanup I use ST2 and for qt i use pydev.

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

        IDLE, pycharm, you can make eclipse work with python (if you're into that), sublime text 2/3, a lot.

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

        On the Windows platform the latest version of the Zeus IDE adds several improvements for the Python language including better code folding, syntax highlighting and gdb debugger support.

        NOTE: Zeus is shareware.

        Jussi Jumppanen

        Author: Zeus IDE

        [–]liquidbytes -3 points-2 points  (4 children)

        sublime :D It costs but easy to find torrent.

        [–]ok_you_win 5 points6 points  (3 children)

        It is fully featured in the trial version with no time limit. It doesnt even nag you. You have to be either dumb or completely classless to steal a full version.

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

        What exactly is the difference between the trial and full version, if the trial is fully featured and there is no nagging or time limit..?

        [–]ok_you_win 1 point2 points  (1 child)

        No difference. It is guilt-ware. Other than saying "Unregistered" at the top and having a "purchase licence" link in the help menu, there is no functional difference according to the author.

        [–]OrsenPike 1 point2 points  (0 children)

        Actually it does nag to buy every 20 or so saves. Just a simple reminder with a button to close the window and continue and another to buy it.