By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
446,227 Members | 1,504 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 446,227 IT Pros & Developers. It's quick & easy.

Best IDE for Python

P: n/a
Hi All, What do you find the best IDE for creating web applications in
Python is? Preferably FOS IDE.

Cheers

Aug 14 '06 #1
Share this Question
Share on Google+
18 Replies


P: n/a
By FOS, do you mean FOSS (Free and Open Source Software)? I've never
seen the acronym FOS used.

I personally use Eclipse with PyDev.
http://www.eclipse.org/
http://pydev.sourceforge.net/

Michiel

Op 14-aug-2006, om 9:50 heeft st************@gmail.com het volgende
geschreven:
Hi All, What do you find the best IDE for creating web applications in
Python is? Preferably FOS IDE.

Cheers

--
http://mail.python.org/mailman/listinfo/python-list
Aug 14 '06 #2

P: n/a
st************@gmail.com writes:
Hi All, What do you find the best IDE for creating web applications
in Python is? Preferably FOS IDE.
I don't know what a "FOS IDE" is, but my preferred free software
development environment for making web applications is:

- GNU screen <URL:http://www.gnu.org/software/screen/>

- Powerful editor; lately I prefer Emacs with python-mode
<URL:http://www.gnu.org/software/emacs/>
<URL:http://www.emacswiki.org/cgi-bin/wiki/PythonMode>

- Standards-compliant browser, such as Firefox; the web developer
toolbar extension is a must.
<URL:http://www.mozilla.com/firefox/>
<URL:http://chrispederick.com/work/webdeveloper/>

Separate 'screen' windows for:

- VCS interaction
- Continuous unit test running
- Emacs session
- Python interactive session

Many of the above could be in Emacs windows instead, but I already
know how to work 'screen'. The wonderful part about using 'screen' as
my IDE is that any of the tools can be interchanged as I like.

--
\ "The WWW is exciting because Microsoft doesn't own it, and |
`\ therefore, there's a tremendous amount of innovation |
_o__) happening." -- Steve Jobs |
Ben Finney

Aug 14 '06 #3

P: n/a
I think SPE is a terrible complete and efficient IDE!

Aug 14 '06 #4

P: n/a

I'm assuming that FOS = "free open source"...

In any case, what operating system do you run? If you're on OS X, I
highly recommend TextMate. It's not free, but it has good support
(either via built-in or third-party plugins) for Python as well as
HTML, SQL, XML, Django templates, and the like. A lot of Rails folks
use it (as well as Django and TurboGears developers, I might add).

The best general-purpose IDE for Python, IMO, is WingIDE. Again, it's
not free (personal license will cost you $30). It runs on each of the
major platforms - Windows, Linux, OS X - and has some nice features,
including code completion, syntax highlighting, a built-in Python
shell, etc. I don't think it has any features built-in specifically for
web dev, however; if you have to do lots of HTML, XML, and SQL as part
of your project, you might want something a bit more general-purpose.

If you're determined to go the FOSS route, you can always use VIM,
Emacs, Eric, or SPE.

Just my two cents...

--dave

Aug 14 '06 #5

P: n/a
Michiel Sikma wrote:
By FOS, do you mean FOSS (Free and Open Source Software)? I've never
seen the acronym FOS used.
Maybe he was trying for "Free Open Source IDE" without the
semi-redundant "Software"
I personally use Eclipse with PyDev.
http://www.eclipse.org/
http://pydev.sourceforge.net/
Eclipse+PyDev has the advantage over emacs when it comes to big
projects, IMO. It has features like refactoring, better project
management, code coverage. emacs has the advantage of being faster and
smaller, and if all you need is a syntax-aware (smart indentation,
syntax highlighting) editor and integrated debugger, emacs is more than
enough.

I've tried the other free IDEs like IDLE, SPE, eric3, TruStudio (for
Eclipse), Boa, Komodo, WingIDE. I have various issues with them,
including instability, poor automatic indentation, bad GUI (too many
subwindows or uncustomizable), costly, no refactoring, and no project
management.

It's strangely ironic. I consider Eclipse to be a lousy Java IDE
especially compared to commercial offerings and yet that's what the
project started out as.
Aug 14 '06 #6

P: n/a
st************@gmail.com wrote:
Hi All, What do you find the best IDE for creating web applications in
Python is? Preferably FOS IDE.
WingIDE appears to be the best, especially if you are an Emacs user and are
used to its niceties. It is however, not free.

PyScripter is pretty good too -- light weight, lots of features.

Satya

--
Posted via a free Usenet account from http://www.teranews.com

Aug 14 '06 #7

P: n/a
Yu-Xi Lim wrote:
Eclipse+PyDev has the advantage over emacs when it comes to big
projects, IMO. It has features like refactoring, better project
management, code coverage
Emacs and vim both have good integration of BicycleRepairMan for python
refactoring. I don't know what better project management or code
coverage in eclipse entail, but I've posted before that if you think
vim/emacs are just syntax highlighting/indenting text editors you've
got them misconfigured.

The beautiful thing about vim in particular is that it uses Python as
an internal scripting language, so it's very easy to extend it to add
whatever you want.

e.g. in vim I get
* Syntax checking, if I type invalid python code it gets highlighted as
an error (if I type, say, "if a=1:" and hit return, it gets highlighted
since I need an == there).
* Object browser, with dropdowns showing the parent and child classes
of the current class, and the ability to jump to various class methods
* Normal tag-jump stuff, so I can drill down into the method/function
call I'm looking at and then pop back up (keeping a stack so I can
drill down arbitrarily deep to follow the flow of the code)
* Interactive help, so when, say, I type foo.blah( then the status line
displays the first line of the docstring/python doc/preceding comment
for foo.blah. E.g. if I type "cmp(" then the status line shows "cmp(x,
y) Compare the two objects X and Y and return an integer according to
...." and if I hit F1 then I get the full help text
* Editor control for uncaught errors--if I code I'm debugging raises an
uncaught exception, the editor jumps directly to it. Even works for
web development, if I hit a page in my dev server that raises an
exception, it brings my editor right there.

and lots more (version control integration, easy mapping of keys to
restart the webserver after I make changes, etc). And there's some
internal crap (e.g. we work on lots of clients who have client-specific
versions of some objects; I have a client menu so that if I pick one,
then I'll jump to their client-specific version of the current file (or
the base generic version if there isn't a specific one), tags will
follow the right client versions, etc).

Aug 14 '06 #8

P: n/a
Gotta love PyScripter. Light, easy to use, free.
http://mmm-experts.com/Products.aspx?ProductID=4

st************@gmail.com wrote:
Hi All, What do you find the best IDE for creating web applications in
Python is? Preferably FOS IDE.

Cheers
Aug 14 '06 #9

P: n/a
Hi, sjdevnull

I'm a vimmer too, and I wonder what plugins you are using. What you
said sounds interesting. Could you tell us more about the plugins?
"Object browser" is what I need most, but so far I've no idea what
plugin can do this for me, :-(

On 14 Aug 2006 15:02:13 -0700, sj*******@yahoo.com <sj*******@yahoo.comwrote:
Yu-Xi Lim wrote:
Eclipse+PyDev has the advantage over emacs when it comes to big
projects, IMO. It has features like refactoring, better project
management, code coverage

Emacs and vim both have good integration of BicycleRepairMan for python
refactoring. I don't know what better project management or code
coverage in eclipse entail, but I've posted before that if you think
vim/emacs are just syntax highlighting/indenting text editors you've
got them misconfigured.

The beautiful thing about vim in particular is that it uses Python as
an internal scripting language, so it's very easy to extend it to add
whatever you want.

e.g. in vim I get
* Syntax checking, if I type invalid python code it gets highlighted as
an error (if I type, say, "if a=1:" and hit return, it gets highlighted
since I need an == there).
* Object browser, with dropdowns showing the parent and child classes
of the current class, and the ability to jump to various class methods
* Normal tag-jump stuff, so I can drill down into the method/function
call I'm looking at and then pop back up (keeping a stack so I can
drill down arbitrarily deep to follow the flow of the code)
* Interactive help, so when, say, I type foo.blah( then the status line
displays the first line of the docstring/python doc/preceding comment
for foo.blah. E.g. if I type "cmp(" then the status line shows "cmp(x,
y) Compare the two objects X and Y and return an integer according to
..." and if I hit F1 then I get the full help text
* Editor control for uncaught errors--if I code I'm debugging raises an
uncaught exception, the editor jumps directly to it. Even works for
web development, if I hit a page in my dev server that raises an
exception, it brings my editor right there.

and lots more (version control integration, easy mapping of keys to
restart the webserver after I make changes, etc). And there's some
internal crap (e.g. we work on lots of clients who have client-specific
versions of some objects; I have a client menu so that if I pick one,
then I'll jump to their client-specific version of the current file (or
the base generic version if there isn't a specific one), tags will
follow the right client versions, etc).

--
http://mail.python.org/mailman/listinfo/python-list
Aug 15 '06 #10

P: n/a
Yep thanks all for your replies. and yes i meant free and open source
software, left an s out :)
Tryker wrote:
Gotta love PyScripter. Light, easy to use, free.
http://mmm-experts.com/Products.aspx?ProductID=4

st************@gmail.com wrote:
Hi All, What do you find the best IDE for creating web applications in
Python is? Preferably FOS IDE.

Cheers
Aug 15 '06 #11

P: n/a

st************@gmail.com wrote:
Hi All, What do you find the best IDE for creating web applications in
Python is? Preferably FOS IDE.

Cheers
I like ActiveState's Komodo. It's heavyweight and not free ($30 for
the personal edition) but it also supports Perl, Ruby, PHP and TCL. I
started using it mostly on Windows but I've used it on Linux more
recently (and it runs on Solaris and OSX now too).
It has all the bells and whistles and probably won't appeal too much to
hardcore emacs/vim people because it is so GUI oriented and nowhere
near as fast. Also, it's text editor is similar to the ones you get
with other popular IDE's like MS DevStudio and Eclipse i.e. not very
powerful.
I've used it extensively with Python and it handles whitespace
indentation beautifully. I like that it also supports Perl because I
use Perl quite a bit too.
That being said, I'm going to give Wing IDE a try at some point soon.

Aug 15 '06 #12

P: n/a
yo**********@gmail.com wrote:
st************@gmail.com wrote:
>Hi All, What do you find the best IDE for creating web applications in
Python is? Preferably FOS IDE.

Cheers

I like ActiveState's Komodo. It's heavyweight and not free ($30 for
the personal edition) but it also supports Perl, Ruby, PHP and TCL. I
started using it mostly on Windows but I've used it on Linux more
recently (and it runs on Solaris and OSX now too).
It has all the bells and whistles and probably won't appeal too much to
hardcore emacs/vim people because it is so GUI oriented and nowhere
near as fast. Also, it's text editor is similar to the ones you get
with other popular IDE's like MS DevStudio and Eclipse i.e. not very
powerful.
I've used it extensively with Python and it handles whitespace
indentation beautifully. I like that it also supports Perl because I
use Perl quite a bit too.
That being said, I'm going to give Wing IDE a try at some point soon.
Have you tried SPE (Stani's Python Editor) http://stani.be/python/spe/
Free, and available for Linux, Mac, and Windows.
Aug 15 '06 #13

P: n/a
I've had a similar experience and tried about everything. Personally -
eclipse with PyDev has been the winner for me. I also still do a bunch
of Java coding - so there is an added benefit of one tool across
languages. The final thing I really like with eclipse is the svn
plugins - making life very easy. Also, if your doing web/xml and other
stuff - there is a plugin for eclipse for it ;) Not all the plugins
work as seemlessly together (i abandon eclipse for the majority of
plone/zope stuff - most of it isn't python - and setting up eclipse to
be happy with the output of archgen has not been worth the bother - I'm
sure it's possible)

PyLint can kind of be a pain if your on a low powered box, but tweaking
the settings (and I had to do a bit of tweaking) can alleviate the
problems, but still let you reap the benefits.

Anand

Yu-Xi Lim wrote:
Michiel Sikma wrote:
By FOS, do you mean FOSS (Free and Open Source Software)? I've never
seen the acronym FOS used.

Maybe he was trying for "Free Open Source IDE" without the
semi-redundant "Software"
I personally use Eclipse with PyDev.
http://www.eclipse.org/
http://pydev.sourceforge.net/

Eclipse+PyDev has the advantage over emacs when it comes to big
projects, IMO. It has features like refactoring, better project
management, code coverage. emacs has the advantage of being faster and
smaller, and if all you need is a syntax-aware (smart indentation,
syntax highlighting) editor and integrated debugger, emacs is more than
enough.

I've tried the other free IDEs like IDLE, SPE, eric3, TruStudio (for
Eclipse), Boa, Komodo, WingIDE. I have various issues with them,
including instability, poor automatic indentation, bad GUI (too many
subwindows or uncustomizable), costly, no refactoring, and no project
management.

It's strangely ironic. I consider Eclipse to be a lousy Java IDE
especially compared to commercial offerings and yet that's what the
project started out as.
Aug 15 '06 #14

P: n/a
Bruce Who wrote:
Hi, sjdevnull

I'm a vimmer too, and I wonder what plugins you are using. What you
said sounds interesting. Could you tell us more about the plugins?
"Object browser" is what I need most, but so far I've no idea what
plugin can do this for me, :-(
It's like a 15 minute job to write something basic.

Mine's a little more complicated since I deal with ugly things like
finding the parent class in cases like:

import generic.base.klass
....
BaseKlass = generic.base.klass.someKlass
....
class newKlass(BaseKlass):

and similar constructs. I use the following in my vimrc:

"you might need to add directories to sys.path before the following
line
"probably also wand to bracket parts of it in 'if have("gui_running")'
python import vimrc
au GUIEnter * py vimrc.tags.fakeTagsMenu()
au BufEnter *.py aunmenu Tags
au BufEnter *.py py vimrc.tags.buildMenu()
au BufLeave *.py menu disable Ta&gs
au BufEnter * py vimrc.tags.fakeTagsMenu()

And then I have a vimrc.py with, among other things:
--------------------------
import tags
import os
import vim
def cur_x():
return vim.current.window.cursor[1]
def cur_y():
return vim.current.window.cursor[0]
def relativePath(absolutePath):
cwd = os.getcwd()
if absolutePath.startswith(cwd):
absolutePath = absolutePath[len(cwd):]
while absolutePath[0] == '/':
absolutePath = absolutePath[1:]
return absolutePath
return absolutePath
----------------------
And a tags.py:
----------------------
#!/usr/bin/python
try:
import vim
import vimrc
except:
pass

def findParentClass(currLoc = None, showMenu=0, allLines=None):
if not allLines:
allLines = vim.current.buffer
if currLoc == None:
currLoc = vimrc.cur_y()
lines = [ line for line in allLines[:currLoc] if
line.startswith("class ") ] if len(lines) == 0:
lines = [ line for line in allLines[currLoc:] if
line.startswith("class
") ]
else:
lines.reverse()
if len(lines) == 0:
return None

try:
klass = lines[0].split("(", 1)[1].split(")")[0]
except:
return None
currKlass = lines[0].split(" ", 1)[1]
currKlass = currKlass.split(":")[0]
try:
currKlass = currKlass.split("(")[0]
except:
pass

renameLines = []
for i in range(len(allLines)):
line = allLines[i]
while line.endswith("\\"):
line = line[:-1] + allLines[i+1]
i=i+1
if line.endswith(" as %s" % klass) or line.startswith("%s
="%klass) or line.startswith("%s="%klass):
renameLines.append(line)

if len(renameLines)>0:
parseLine = renameLines[-1]
if parseLine.endswith("as %s"%klass):
klass = parseLine.split(" ")[-3]
else:
klass = parseLine.split(".")[-1]
if "." in klass:
klass = klass.split(".")[-1]
if showMenu:
if klass == currKlass:
generic = "generic"
else:
generic = "none"
vim.command('502menu <silentTa&gs.Parent:%s :call
FindTag("%s", "%s")<C-M>' %(klass, klass, generic))
try:
klass = klass.split(".")[-1]
except:
pass
return klass
def YankLine():
try:
word = vim.current.line
word = word.split(" ")[-1]
except:
return
try:
vim.command("silent tag %s"%word)
except:
return
stuff = vim.current.line
vim.command("normal ^T")
print stuff
def buildChildEntries():
rv = 0
for line in vim.current.buffer:
if line.startswith("class "):
klass = line.split(" ", 1)[1]
try:
klass = klass.split("(")[0]
except:
pass
try:
klass = klass.split(":")[0]
except:
pass
klass = klass.strip()
fileName = vimrc.relativePath(vim.current.buffer.name)
lines = [ line.strip() for line in open("oobr",
"r").readlines() if
line.startswith("%s:"%klass)]
for line in lines:
rv = 1
splitline = line.split(":")
child = splitline[1]
childBase = childFile.split("/")[-1]
childBase = childBase.split(".")[0]
if "_" in childBase and not
fileName.startswith(childBase) and not fileName.startswith("generic")
and not fileName.startswith("libs"):
continue
vim.command('502menu <silentTa&gs.Child:%s :call
FindTag("%s","%s")<C-M>' % (childBase, child, childFile))
vim.command('502menu <silentTa&gs.-children- :')
return rv
def editObject():
vim.command(":e object.py")
vim.command(":set buftype=nowrite")
vim.command(":set bufhidden=delete")
vim.command(":set noswapfile")
def buildParentEntries():
foundSome = 0
for i in range(len(vim.current.buffer)):
if vim.current.buffer[i].startswith("class"):
if findParentClass(i, showMenu=1):
foundSome = 1
return foundSome
def fakeTagsMenu(force=0):
ft = vim.eval("&filetype")
if ft == "python" and force==0:
return
try:
vim.command("502menu Ta&gs.-Sep- :")
vim.command("502menu disable Ta&gs")
except:
pass
def showMenus(fileDict):
files = fileDict.keys()
files.sort()
files = [vimrc.relativePath(vim.current.buffer.name)]
foundSome = buildParentEntries()
foundSome = buildChildEntries() or foundSome
for k in files:
kName = k.strip().split(".")[0]
#vim.command("502menu Tags.%s :q<C-M>" % kName)
try:
classList = fileDict[k]["class"].keys()
except:
if not foundSome:
fakeTagsMenu(1)
return
classList.sort()
for c in classList:
c = c.strip()
tagList = fileDict[k]["class"][c].keys()
tagList.sort()
for t in tagList:
vim.command("502menu <silentTa&gs.%s:%s :tag
%s<CR>zz" % (c, t, t))
fdList = None
def rebuildTags():
global fdList
tagFiles=vim.eval("&tags")
tagFiles = tagFiles.split(",")
fd = {}
for t in tagFiles:
try:
fd = parseTagsFile(t, fd)
except:
pass
fdList = fd
def buildMenu():
global fdList
if not fdList:
rebuildTags()
fd = fdList
showMenus(fd)
def parseTagsFile(file, files = None):
if not files:
files = dict()
for i in open(file).readlines():
i = i.strip()
try:
(tagName, fileName, exCmd, extensions) = i.split("\t", 3)
except:
continue
extensions = extensions.split("\t")
className = ""
if not files.has_key(fileName):
files[fileName] = {"class":{}, "method":{}}
hadClass=0
for e in extensions:
if e.startswith("class:"):
hadClass=1
className = e.split(":", 1)[1]
if not files[fileName]["class"].has_key(className):
files[fileName]["class"][className] = {}
files[fileName]["class"][className][tagName] = 1
if not hadClass:
if extensions[0] == "c":
if not files[fileName]["class"].has_key(tagName):
files[fileName]["class"][tagName] = {}
else:
files[fileName]["method"][tagName] = tagName
return files

Aug 15 '06 #15

P: n/a
On 14 Aug 2006 15:04:41 -0700, "Tryker" <3w*****@gmail.comwrote:
>Gotta love PyScripter. Light, easy to use, free.
http://mmm-experts.com/Products.aspx?ProductID=4
I agree: I'm trying it only from 4 days the beta version 1.6 and it's
good (some little problems, normal for a beta version, that I'll write
them).

Simon
__________________________________________________ _____

Sperm: To be fastest doesn't imply that you are smartest.
( by Enrique Herranz )
Aug 17 '06 #16

P: n/a
Please could you tell me how to uninstal SPE?
Regards.

jelle wrote:
I think SPE is a terrible complete and efficient IDE!
----== Posted via Newsfeeds.Com - Unlimited-Unrestricted-Secure Usenet News==----
http://www.newsfeeds.com The #1 Newsgroup Service in the World! 120,000+ Newsgroups
----= East and West-Coast Server Farms - Total Privacy via Encryption =----
Aug 28 '06 #17

P: n/a
Please advise how to uninstal SPE.
Regards,
Dr. Pastor.
jelle wrote:
I think SPE is a terrible complete and efficient IDE!
----== Posted via Newsfeeds.Com - Unlimited-Unrestricted-Secure Usenet News==----
http://www.newsfeeds.com The #1 Newsgroup Service in the World! 120,000+ Newsgroups
----= East and West-Coast Server Farms - Total Privacy via Encryption =----
Aug 28 '06 #18

P: n/a
Thank you Sir.
I downloaded SPE from the main site.
Installed on Windows XP.
Regards.
Sybren Stuvel wrote:
Dr. Pastor enlightened us with:
>Please advise how to uninstal SPE.

First you'll have to tell us how you installed it in the first place.
Without that, we can only guess.

Sybren
----== Posted via Newsfeeds.Com - Unlimited-Unrestricted-Secure Usenet News==----
http://www.newsfeeds.com The #1 Newsgroup Service in the World! 120,000+ Newsgroups
----= East and West-Coast Server Farms - Total Privacy via Encryption =----
Aug 28 '06 #19

This discussion thread is closed

Replies have been disabled for this discussion.