Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Remote coding and execution with python: what IDE?

I have been developing a project in python for the last six months, and love the language. But I have yet to find an IDE or text editor that could provide some extra functionality for me. I currently have syntax highlighting which is one of the easiest things to get, but not much more. I am dreaming of having my IDE jump to the line in my code that caused the crash instead of reading the line number from the backtrace and manually locating it in my text editor. I have been looking for something that could do this under my development constraints, but no success. My constraints are the following:

  • The python code being developed rests on a remote machine, equipped with enough RAM and CPUs to run the code. That machine has no screen or keyboard.
  • I code from my laptop, a macbook pro running OS X which is not meant to execute the code.
  • The remote machine is running Fedora 12 and provides SSH connectivity with root access.
  • My connection isn't good enough at home to run an X11 IDE on the distant machine and have the interface displayed on my machine.

What I have been doing up to now is to log-in to the remote machine via SSH using the excellent CyberDuck client. This enables me to open a text file residing on the remote machine inside any of my local usual text editors like TextMate or TextWrangler and have changes uploaded automatically every time the file is saved. This really gives you the felling you are editing the distant file in your usual cocoa interface.

Then to execute the python code, I open a second SSH connection, this time using a terminal into which I would type:

$ ssh user@dns
$ ipython -pylab
$ execfile("/projectdir/code.py")

Finaly, I read the backtrace and go back to my local text editor to find the correct line number. There must be a better way ! Any ideas ?

like image 911
xApple Avatar asked Jul 06 '10 14:07

xApple


People also ask

What is the IDE to execute Python programs?

PyCharm. One of the best (and only) full-featured, dedicated IDEs for Python is PyCharm. Available in both paid (Professional) and free open-source (Community) editions, PyCharm installs quickly and easily on Windows, Mac OS X, and Linux platforms. Out of the box, PyCharm supports Python development directly.

What IDE do most Python developers use?

PyCharm. In industries most professional developers use PyCharm and it has been considered the best IDE for python developers. It was developed by the Czech company JetBrains and it's a cross-platform IDE.

Which Python IDE is used for learning and teaching programming?

Thonny. Thonny is a popular python based IDE preferable for beginners that comes with excellent features to learn python programming. This IDE is ideal for learning and teaching python. It allows developers to see how their code and shell commands influence the Python variables.


2 Answers

You may or may not like this suggestion, but I would use vim, setting makeprg and errorformat appropriately. This way you can ssh in as you normally would, edit files directly on the remote machine, and compile/error fix using quickfix-errorlist. It will only cost you the time to set makeprg and errorformat correctly. If you do a little digging the info is out there.

EDIT

  1. ssh [email protected]
  2. Put the lines at the bottom of this answer in ~/.vimrc
  3. vim somemodule.py
  4. Type ":make somemodule.py"
  5. Type ":cw" which may stand for c as in the language, window
  6. vim will popup a window [Quickfix List]
  7. Cursor over an error in the [Quickfix List]
  8. Press enter
  9. vim changes your cursor to the window above and places it on the error
  10. Fix the error using your vim skills, ":h" for help and tutorials
  11. Ctrl+w, j will move the cursor down a window, back to your quickfix list
  12. Ctrl+w, k will move the cursor up a window
  13. Repeat steps 7-12 as necessary
  14. ":make somemodule.py" to make sure you fixed everything
  15. Welcome yourself to the darkside, vim rules.

~/.vimrc settings:

"python makeprg settings

setlocal makeprg=python\ %

setlocal errorformat=
        \%A\ \ File\ \"%f\"\\\,\ line\ %l\\\,%m,
        \%C\ \ \ \ %.%#,
        \%+Z%.%#Error\:\ %.%#,
        \%A\ \ File\ \"%f\"\\\,\ line\ %l,
        \%+C\ \ %.%#,
        \%-C%p^,
        \%Z%m,
        \%-G%.%#

Setting makeprg tells vim that your "compiler" is python. Setting the errorformat tells vim how to parse the output of your "compiler" so you can jump to error lines. Look around on the internet, there are plenty of vimrc suggestions for programming in python. There are makeprg/errorformat settings for Xcode/Visual C++/Perl/etc as well which really makes vim a win-win situation if you program in different languages. There's also other fancy stuff like autoindent, code completion and syntax highlighting. Enjoy

Note: These settings were taken almost verbatim from here.

like image 116
manifest Avatar answered Sep 18 '22 14:09

manifest


here is a good list of Python-Editors.

In my opinion WingIDE (there's a free version) is very feature-rich, good and easy and supports Remote-Debugging (only in the commercial version). Also Eclipse PyDev-Plugin, which is fully free, is worth looking into it and seems to support Remote-Debugging.

like image 24
Joschua Avatar answered Sep 19 '22 14:09

Joschua