0

I'm wondering if there's a more beginner-friendly environment to write Python than a terminal shell. Any suggestions?

piperchester
  • 1,176
  • 2
  • 14
  • 25
  • You should google for "Python Development Environments". Then, you would find this wiki: http://wiki.python.org/moin/IntegratedDevelopmentEnvironments ; or, even here at SO you would find this excellent thread: http://stackoverflow.com/questions/81584/what-ide-to-use-for-python – Valdir Stumm Junior Aug 26 '12 at 03:26

3 Answers3

5

My recommendations:

  • I'm using DreamPie as my Python shell. Some useful features of DreamPie: automatic completion of attributes and file names, automatically displays function arguments and documentation, automatically folds long outputs, lets you save the history of the session as an HTML file, automatically adds parentheses and optionally quotes when you press space after functions. It also divides the window into a code box (where you write the code) and a history box (with all the previous commands and their outputs) - that's a very convenient concept in my opinion.

  • DreamPie is a great shell, but shells are only good for small scripts you're going to use once and throw away. The best IDE I'm aware of for writing Python programs/projects is the Pydev plugin within the Eclipse IDE. It features the best auto-completion I've seen for Python, a good debugger, token browser, Django integration, Unittest integration, auto import, easy-to-use refactoring options (renaming, extracting methods, inlining a variable, extracting a variable, etc) and more.

Muhammad Usman
  • 1,111
  • 2
  • 11
  • 36
snakile
  • 47,358
  • 57
  • 160
  • 231
  • Have a look at one of the new kids on the block Ninja-IDE http://ninja-ide.org/ – Tim Hoffman Aug 26 '12 at 02:08
  • @Tim: Thank you for introducing the NINJA-IDE to me. It seems like a pretty good IDE, though I haven't thoroughly examined it yet. I'll use it for a Python project when I have the time and I'll see if NINJA is indeed better than Eclipse+Pydev. – snakile Aug 26 '12 at 02:58
  • I can actually run ninja-ide on the raspberrypi. Eclipse + pydev would probably be glacially slow. Boa-constructor is a little faster on the raspi. (Boa is actually my personal favourite IDE). – Tim Hoffman Aug 26 '12 at 03:10
  • I dunno I find eclipse+pydev much more powerful than ninja ... but ninja is great for smaller projects. – Joran Beasley Aug 26 '12 at 07:11
  • 1
    @Tim: In my opinion Eclipse+Pydev is superior to Ninja: Ninja lacks most of Pydev refactoring capabilities, Ninja uses a hell lot of my CPU, Ninja's embedded console doesn't automatically add the current project directory to the PATH, Ninja doesn't fix errors it finds in the code (it just tells you about them while in Eclipse you can usually fix such errors with a key stroke), Ninja doesn't automatically formats the source... Still, Ninja is a very good Python IDE (I might have made an impression that Ninja is awful by mentioning only its flaws), yet Eclipse+Pydev is much better. – snakile Aug 27 '12 at 00:08
  • yeah Eclipse+Pydev is a pretty significant development environment. I personally always steered clear of it as it always performed terribly (ie really slow) on the limited hardware (low memory) I had available to me. Choice of IDE's do become quite a personal decision ;-) – Tim Hoffman Aug 27 '12 at 00:25
3

Take a look at various

See also What IDE to use for Python?

Community
  • 1
  • 1
jfs
  • 346,887
  • 152
  • 868
  • 1,518
0

Don't expect what you'd get from a classical programming language IDE from something having to do with Python. It can't be done due to the dynamic nature of the language and the fact that in order to figure out details such as autocomplete, parameter info or members, an IDE would have, at some point, to run the code - it can't be done because of the possible side-effects.

I'm using Emacs and Sublime Text 2 myself.

foxx1337
  • 1,543
  • 2
  • 16
  • 23
  • 3
    While not all methods will be available, due to the dynamic nature of the language, I can't see why an IDE won't be able to recognize `def foo(bar):`. PyScripter did that for me just fine. – Waleed Khan Aug 26 '12 at 01:23
  • 1
    IDLE has a limited form of code completion (and tooltips) but only *after* you run the code at least once :) – Joel Cornett Aug 26 '12 at 01:23
  • 1
    PyCharm do have a good code completion without running anything. – JBernardo Aug 26 '12 at 01:27
  • So does boa constructor and quite a few other IDE's. Most advanced IDE's can perform these advanced things – Tim Hoffman Aug 26 '12 at 02:06
  • The flip side of this is that many of the things an IDE does for you in those languages... are simply unnecessary in Python. :) – Karl Knechtel Aug 26 '12 at 03:26
  • You *can* get "support", and you can even get it from editors that are not considered IDEs, such as Emacs and vim, with the help of the rope refactorings library and static checkers such as pyflakes and pep8 with Emacs' flymake-mode. – Erik Kaplun Aug 26 '12 at 14:01