.NET developer moving to ubuntu for development - python

I've been developing in .NET now for about 3 years. I love the visual studio IDE and sadly I won't be able to use it anymore.
Could someone save me hours of searching the web and reading reviews, and suggest the 'standard' or most popular IDE/Text editor for linux that will get me up and running quickly?
My main goals here are web development backed with Python.

Consider Wing IDE -- IMHO the best commercial IDE for Python, it does support Django if that's what you want (as, apparently, do 80% of Python-based websites; personally, I prefer werkzeug and the like, but maybe that's partly because my "web apps" tend to be more like "web services", with most all the UI/views parts done in HTML/CSS/Dojo;-).
Me, I use Vim (usually in the gvim incarnation) as my "Python IDE" (and I've seen Emacs-using colleagues do at-least-equivalent wizardry, but I just can't get used to Emacs myself!-)... but I have to admit that a Wing IDE expect, particularly if faced with a thorny debug scenario, can do circles around me (and even around the Emacsers). ((So why haven't I made the effort to switch? Maybe because, thanks to fanatical testing, I now face thorny debug scenarios too rarely to make me an expert in any new tool!-)) ((Or maybe because my fingers, having learned vi 30+ years ago, would HATE me if I switched to ANYTHING else;-)).

See this question about Python IDEs.
I use Eclipse + PyDev.

First off, if you want to do web with Python, the Django framework seems like the best choice.
From some quick Googling, the best IDE for Django would be NetBeans with a plugin.
Good luck on learning 'nix development, then!

You can still develop .NET on linux.
Microsoft's Visual Studio Code is an Integrated Development Environment (IDE) with support for Mac, Linux and Windows.

I really like gedit and a terminal. You'll more than likely need to make a few tweaks and maybe install a plugin or two. gedit also has a Python console window plugin if you like that kind of integration. (Edit -> Preferences -> Plugins, then enable the bottom pane with View -> Bottom Pane)
If you're new to Ubuntu I'd still recommend trying a few different tools before you get settled. The impression I get is that text editors are more commonplace than full blown IDEs on Linux. I tried a few IDEs on Ubuntu and it just didn't seem right - gedit is lightweight and I actually enjoy using it more than Textmate on OS X.

If you are willing to pay Wing IDE (http://www.wingware.com/) is the best (IMO)
They have trial versions and a basic version free (https://wingware.com/wing101)

Mono Develop
If you've been using visual studio, then I'd guess that mono develop would be the closest thing. As far as I know, its the best attempt around to be a linux version of visual studio. A quick Google search gives several results for python plugins for mono develop.

Related

Using VIM for Python IDE in Windows?

I am turning to Python from .NET world. And Visual Studio was something a great tool i used.
In python world we do have basic IDLE and another one is VIM. I have seen that a lot of developers have configured VIM to a great IDE. Using basic VIM in Windows 7 seems of less use.
So i want to moderate my VIM to a level which has file explorer, syntax highlighting, search, error highlighting etc. So that it gives feel of Visual Studio and more productive.
But all hacks/tips available are for Linux/Ubuntu users mostly, which i may use later but as of now i need to make my VIM in Windows more productive, visual.
Please Suggest some Tips/Hacks/Resources to look around for VIM configuration?
Thanks
This question addresses your low level issue: coding Python with an IDE that is not VS.
There are a few popular blog posts addressing your high level issue: setting up Vim for Python development. They are a quick google away…
I feel the need to point out that Vim is not an IDE. You can customize it a lot and end up with something that looks like an IDE but you won't get an IDE. Only an over-customized text editor.
Anyway, here are a few tips for starting out with Vim:
Do $ vimtutor as many times as needed to feel comfortable with the basics.
Get familiar with Vim's buit-in documentation: the answers to most of your questions are somewhere inside. :help gets you to the front page, :help 'option' shows the documentation for option, :help :command shows the documentation for command… Hit <C-]> on a colored word to jump to its definition.
Don't use Janus or SPF13 or whatever pre-packaged set of plugins. You'll only grow bad habits. Similarly, don't copy other people's vimrc wholesale.
Ctags is an external code indexer that is used by Vim to "jump to definition" with <C-]>. cscope is another option, it's more powerful but also a little more complex. See :help tags.
Related to ctags, TagList and TagBar are two popular plugins used to display more or less the equivalent of the Object Browser in VS.
NERDTree is another popular plugin that mimicks the file tree found in many IDEs/editors. But Vim comes with netrw (:Ex) by default, try it before installing NERDTree.
Read :help motion.txt as soon as possible.
Watch Drew Neil's laser-guided vimcasts.
Don't rush it.
you can use vim plugins on windows, http://www.vim.org/scripts/index.php, typing "vim {your feature here}" into google will come up with lots of results.
popular file explorer is nerdtree,
syntax highlighting can be turned on with
syntax on in your vimrc
searching open file is easy to do using reg exes . Initialize search with /.
Searching directory is easy to do using grep.
I don't develop on windows but i have read that Cygwin might be worth installing for some linux tools if not already installed.
I am in no way an evangelist of any Editor/IDE.
But, if you are a newbie to Python I would suggest trying out Sublime Text 2 http://www.sublimetext.com/ . It is a very light weight yet powerful editor with a great following and it has a free evaluation version with no deadline.
But, if you intend to work using frameworks such as Django/ GAE then I would suggest using PyCharm from JetBrains
http://www.jetbrains.com/pycharm/
Finally, these tools are all just personal choices until you get comfortable with one or two of them.
Thanks,
-Hari
One possible compromise is to use your favorite IDE with a vim emulator plugin. For example, in Eclipse you can use Vrapper, PyCharm has IdeaVim and so forth. Lighttable also has vim key-bindings. The plug-ins (or key-binding options) give you some of the benefits of editing in Vim while still having the powerful debugging / navigation features, etc. of a full-blown IDE. BTW, Vrapper works with PyDev.
Using an emulator in an IDE allows you to gain the "muscle-memory" necessary for effective vim editing, without getting bogged down in "configuration hell" associated with turning an editor into an IDE (which auto-complete plugin do I use?..etc.?). Once you have mastered the vim keystrokes for normal and visual mode, used along with insert mode, you may decide to continue on into pure Vim and face those issues.
I wouldn't recommend to learn VIM in 2012 (despite it being a great editor). If you must, this blog post will get you started.
But VIM isn't an IDE, it's a text editor.
If you really want a powerful IDE, try IntelliJ IDEA or Eclipse. Both have great plugins to turn them into Python IDEs (along with code completion and all the other nice time savers). For Eclipse, try PyDev. For IntelliJ, search for Python in the plugin preferences pages.

Is there an Eclipse personality settings for Wing IDE?

While PyDev turns out to be a great IDE for python, especially if you are a former Java developer accustomed to all the eclipse ubercool navigation, it still lacks some features that Wing has, like GUI for running python unit-tests.
I know Wing has some "personalities" of other editors: vi, emacs, Visual Studio, ...
Unfortunately, Eclipse is not one of them.
Before I start configuring all the keys myself, creating a keymap.eclipse file, etc. (seems like it's gonna take ages), I wanted to know if no one already configured it and can share it with the rest of the world.
Thanks!
I've added an experimental one in version 4.1.3
Unfortunately, there's no Eclipse personality.

New to Python. Need info on the environment for it

I'm a complete newbie to Python. I've worked on PHP/JavaScript earlier but starting today I'm moving onto Python. I have no idea about the environment needed for it. I could use some suggestions on it for me to get started.
Under Unix, Emacs is a good choice, to which I always come back, because it is convenient to have a single editor for everything, and because it's open source.
What is best for you depends on your past experience with IDEs. I'd say: stick with what you've been using, or take this opportunity to try an even better IDE.
Note: Python comes with Idle, which is a very simple (if limited) IDE.
Be sure to check out IPython. It's an enhanced interactive python shell with a bunch of useful features such as Tab-Completion using introspection (eg, type "my_object." to see a list of its attributes and methods), logging your interactive session to an executable python-file, defining macros, etc. The documentation page has a link to the tutorial as well as screencasts showing it in action.
On my mac/Linux machines, python came pre-installed. On windows I use both jython under the eclipse IDE and ActivePython with their IDE/eclipse.   With eclipse you'll want PyDev.
It all depends on what you are looking for and what you are already using.
For instance, if you are using a more 'simple' editor at the moment: as long as it's got Python syntax you've got the basics.
If you are used to e.g. Eclipse you can just continue to use that, combined with Pydev. Besides syntax highlighting you'll also get more fancy features to help you debug and refactor your code.
Personally I use Emacs with python-mode (and a few other modes to interface with Subversion and Git). In the past I used Vim which also worked quite well.
My advice would be to start out with your current environment as long as it has some rudimentary support for Python. Once you are familiar with the language, start exploring what your environment is missing and either add it or if you cannot, switch to an enviroment which does support the feature.
I use gvim with some plugin in order to have better support for python.
If you like IDE, look at wing IDE wich is the best I have tested so far. Especially the debuger included is really helpful.
The Python Beginner's Guide and the official Python Tutorial both seem like good places to start.
Geany is a good option for a Linux setup, it's intellisense isn't that great but syntax highlighting is good and it can compile your code directly from inside the editor, plus it handles other languages such as C/C++, PHP, Java etc... Eric is another popular choice as it's a full IDE and I know some people use Eclipse.
On windows I use Notepad++, but it's mostly because I like text editors instead of fully blown IDE's.
Reference wise Daniel's choices are very good places to start, also check out Green Tea Press who do free computer books, there are two Python choices on there but the "Python for Software Design" book hasn't yet been published properly although you can download the manuscript. The "How to Think Like a Computer Scientist" book is a good one and not as scary as it sounds.
IDLE is nice to try out things. Other tools that people like are Eclipse with the Pydev plugin which seems to work ok, although it has crashed a few times (Eclipse, that is) and NetBeans (which I haven't tried) but some people seem to like.
I can only help you if you're running a Mac. Download Xcode. I believe that Python 2.3 comes bundled with these development tools. Luckily enough, this is all you really need to get started, unless you want a newer version of Python.
All you need to do is open up Terminal and type python. You're done!

Python learning environment

I'm looking to get up to speed on Python:
Is it worth working locally via the ActivePython interface, then progressing to a website that supports one of the standard frameworks (Django or Pylons) OR utilize the Google Apps environment?
I want to stay as interactive as possible - making feedback/learning easier.
Go with the Python interpreter. Take one of the tutorials that many people on SO recommend and you're on your way. Once you're comfortable with the language, have a look at a framework like Django, but not sooner.
Not sure what you mean.
For development
First choice: idle -- you already have it.
Second choice: Komodo Edit -- very easy to use, but not as directly interactive as idle.
For deploying applications, that depends on your application. If you're building desktop applications or web applications, you still use similar tools. I prefer using Komodo Edit for big things (either desktop or web) because it's a nice IDE.
What are you asking about? Development tools or final deployment of a finished product?
I learned using the docs and IDLE (with shell). Go to Django well after you fully understand Python.
I would just start locally. Django and Pylons add another layer of complexity to the edit/feedback loop.
Unless your primary focus is to make python websites, just stick with an editor and the console.
ipython and your favorite text editor. spend an hour with these screencasts and you'll be comfy with it in no time.
http://showmedo.com/videotutorials/series?name=CnluURUTV
PyCharm from JetBrains has a nice all in one IDE and it welcomes you with a very good tutorial regarding the usage of the IDE (code completion, IntelliSense etc) based on simple Python examples when you installed it and run it for the first time.
It is interactive, because it explains each step for each topic and lets you try it. Then it checks if you have done it right and gives hints if not.
There is a Community Edition (free) available for download or you can buy the Professional version or have it via subscription.
Visual Studio from Microsoft has also Python integration.
You can choose between a Community Edition (free), or you buy Professional or Enterprise. You can also have an MSDN subscription, then you can always download the latest versions with no extra costs.
There are some template projects available (web projects, Django etc), but starting with it is not so easy as it is with PyCharm, since in Visual Studio there is no interactive tutorial for first use available.
The standard IDE coming with Python is of course IDLE, its latest version can be downloaded here.
However, if you just need an editor supporting Python Syntax, then look for NotePad++ or Visual Studio Code. All of them are free. For quick experiments with Python, there is also pythonfiddle.com or pythontutor.com available.
With pythontutor you can even visualize the execution graphically.
All of these apps / tools mentioned are free.
Then for the Python language and Django you can visit the following websites to start:
in English:
www.python.org/about/gettingstarted - for beginners
www.learnpython.org - beginners & advanced
www.w3schools.com/python - beginners & advanced
docs.djangoproject.com - Django tutorials & documentation
Writing your first Django App - Django step by step
RealPython.com - Various useful topics
Writing a wrapper for C# - call C# methods from Python
in German (use "translate to english" in your browser's context menu):
www.python-lernen.de - beginners & advanced
I am sure there is a lot more out there, but the learning sites mentioned above are free.

Django development IDE [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 9 years ago.
Improve this question
I have done a little Django development, but it has all been in a text editor. I was curious what more advanced development tools others are using in their Django development.
I am used to using Visual Studio for development and really like the IntelliSense, code completion, and file organization it provides and would like to find something (or a combination of tools) that would provide some of this in the Django/Python environment.
There is PyCharm from JetBrains which supports Django and Google Apps. It looks promising.
Note: You need to buy a license for the Professional version if you want Django support. The Community version desn't support Django.
I use Eclipse and a plain vanilla PyDev. There isn't any specific Django functionality. The best I came up with was setting up a run profile to run the development web server.
If you add the web tools project (WTP), you'll get syntax highlighting in your templates, but nothing that relates to the specific template language. PyDev is a decent plugin, and if you are already familiar with Eclipse and use it for other projects it is a good way to go.
I recall NetBeans starting to get Python support, but I have no idea where that is right now. Lots of people rave about NetBeans 6, but in the Java world Eclipse still reigns as the king of the OSS IDEs.
Update: LiClipse is also fantastic for Django.
Install it, use this method to get the icon into Ubuntu's menu. Start LiClipse and in File > New > Project ..., select PyDev and PyDev Django project. You may have to set up your Python interpreter etc, but that you'll be able to figure out on your own. Once the Django project is created, you can right click on the project and the menu will have a "Django" option, which allows various things like creating a Django app or running migrations etc. LiClipse is good because it consumes far lesser memory than PyCharm and supports refactoring and autocomplete reasonably well.
I use Vim:
http://github.com/skyl/vim-config-python-ide
[UPDATE]
Sublime Text 2 is pretty awesome. It supports a lot of Vim commands if you want them: Vintage Mode
It has a nice package manager: http://wbond.net/sublime_packages/package_control
I use these packages so far:
Djaneiro
SetDjangoSyntax
CoffeeScript
SublimeLinter
Theme - Soda
SideBarEnhancements
I still love Vim but ... did I mention that Sublime Text plugins are written in Python?
I use Komodo Edit. Check out the Open Komodo Edit.
Sublime
I am beginning to enjoy working with Aptana Studios + PyDev (and other) plugins for all sorts of web application development. As you can tell, it is built on top of the powerful Eclipse, but is tailor-designed to focus on web application development.
I use Kate (KDE Advanced Text Editor) for most of my development, including Django. It has both a Python and Django Templates syntax higlighting. I switch to Quanta+ when a significant part of the project involves HTML.
Since it uses Kate's KPart, it's just as good for editing the Python parts, and for the HTML templates i have the whole Quanta+ tools, while still highligting Django-specific tags.
Update 2013: Unfortunately, Quanta+ has been dead for years now, and there's no hope that it will ever be resurrected. Also, there's no other usable HTML editor out there, so it's Kate all the time now.
NetBeans for Python is my current favorite (lighter and so much easier to install than Eclipse I found). Supports simple refactoring, autocompletion, errors/warnings...
Eclipse Aptana PyDev probably one of the most complete free IDE nowadays (haven't tested a lot)
Wingware Python IDE a commercial IDE, which has some Django-specific project setup features the ability to debug Django template files.
IntelliJ IDEA Ultimate Edition another commercial IDE which has also a plugin for Python that is under heavy development. I saw some demo which look very promising on the auto-completion (for templates and Python).
Vim which I still use a small touch-fix application. See also: Extra tweaks for Django.
PyCharm. It is best the IDE for Python,Django, and web development I've tried so far. It is totally worth the money.
You guys should checkout PyCharm! It is the first decent Django IDE.
Eclipse has the PyDev plugin for python development. Unfortunately, I'm not sure how well it integrates with Django.
As far as I know there is not "an IDE" for Django, but there are some IDEs that support Django right out of the box, specifically the Django syntax for templates.
The name is Komodo, and it has a lot of features, but it's not cheap. If you are not worried about source control or debugging then there is a free version called Komodo Edit.
There is an actual Python extension for Visual Studio: http://pytools.codeplex.com/. It's absolutely fantastic. It feels the same as if I were coding in any native Visual Studio language. The extension is even compatabile with Django. And best of all: it's totally free. Even for Visual Studio, it only requires the Visual Studio Shell to work, which is completely free.
Now you can also use Visual Studio 2010. Here's how:
Download and install Python Tools for Visual Studio.
Create a new project from existing code (menu File → New → Project From Existing Code...)
Specify your Django project folder and use the defaults.
Right-click on manage.py and choose Set as Startup File.
In your project properties Debug tab, add "runserver" in Script Arguments.
You can set break points, and attach to the Python process for debugging. If you want to debug without having to "attach to process," use "runserver --noreload" in your script arguments. However, the "--noreload" means you'll have to stop and restart the Django development web server manually (to recognize your code changes).
This is a nice setup if you already use Visual Studio.
Python Tools has been updated. It has built in support for Django now.
PyCharm, definitely. I tried them all (almost), but PyCharm is the one I found most useful for any heavy development.
For simple, one time, scripts I use whatever comes to mind (TextMate, Vim, Emacs, TextWrangler, etc., you name it).
I have used Eclipse with PyDev and PyCharm. PyCharm is definitely the best IDE for Django/Python I have tried. It does proper template highlighting and auto-completion for all objects. It also does cross-file referencing.
It's quite expensive, but definitely the best Django IDE I have tried. You can try a 30 day evaluation at http://www.jetbrains.com/pycharm/download/.
I've also had good results with Eclipse and Pydev. Although I still require a shell opened to the project directory to run manage.py commands. I've also been using it with the Bazaar plugin for revision control and syncing code with the server.
I really like E Text Editor as it's pretty much a "port" of TextMate to Windows. Obviously Django being based on Python, the support for auto-completion is limited (there's nothing like intellisense that would require a dedicated IDE with knowledge of the intricacies of each library), but the use of snippets and "word-completion" helps a lot. Also, it has support for both Django Python files and the template files, and CSS, HTML, etc.
I've been using E Text Editor for a long time now, and I can tell you that it beats both PyDev and Komodo Edit hands down when it comes to working with Django. For other kinds of projects, PyDev and Komodo might be more adequate though.
I use Kate as well. Kate's simplicity is its biggest feature. It doesn't get in your way. (This is of course highly subjective opinion.)
Kate includes a Python code browser plugin. But it isn't useful IMO. No automatic updates when you change the code/view. Also when you update, the whole tree is collapsed, and you have to expand it again yourself. Too many clicks.
Instead, I use the Source Browser plugin that comes with Pâté. It does cause Kate to freeze temporarily sometimes, but no crashes or anything of that sort so far.
Shameless blog plug: more on using Django with Kate (Pâté)
Well, I've been using my own one. Recently they released an alpha version. Here it is at pfaide.com/.
If you like Vim as an editor, here are some suggestions on how to tune it (up to the point of a full fledged IDE) for Django development: http://code.djangoproject.com/wiki/UsingVimWithDjango.
Editra supports Django Template Language syntax highlighting. You can configure it either as a better Notepad or a basic IDE.
I made a blog post about NetBeans' new and upcoming support for Django. When paired with its already fantastic Python, JavaScript, HTML and CSS support, it's a strong candidate in my mind!
TextMate with the Django and django-html bundles installed gives you syntax highlighting and great extensibility. It is lightweight and fun to use.
Here is a link to a code completion project for TextMate with Python (which I haven't used myself). As for "intellisense" (which I understand to be inline-doc reference), TextMate has that too.
The Wingware editor from http://www.wingware.com is Python-specific with very good auto-completion for Python/Django/Zope, etc.
It has a built in Python shell to run snippets (or select and run) and support for Mercurial/Git, etc. and a built-in unittest/nose/doctest test runner. It's commercial though, but as it is written in Python, it's cross platform.
I bought it a while ago, and thought it looked dorky, but I've tried them all and keep coming back. Caveat that I am a Windows guy with no Emacs or Vim skills, so leveraging that was not an option. And the Mac version requires X Window and seems to be more glitchy.
Geany
It is GTK2 based, fast, lightweight, available for Linux and Windows.
Ninja-IDE.
Check this: Ninja-IDE Django Plugin
Ulipad is a good one.
http://code.google.com/p/ulipad/
I have consistently used Vim or Kate, but I would prefer a full-blown IDE. Given it is not as heavy as Visual Studio.
I like Eclipse + PyDev and/or eric, myself. The new version of PyDev has some pretty awesome code completion support.
Since I only use Eclipse for PyDev, I use a slim install of just the Platform Runtime Binary + PyDev + Subclipse.

Categories

Resources