First I liked PyCharm a lot, it has a clear interface and it clearly will allow an agile development for python projects. I say 'will' because currently I don't see it as a mature product because of the following issues that keeps me from buying the IDE (as of now, because I surely want to see how the product develops):
- It doesn't have support for Pylons, however with my knowledge of setting debugging environments for Eclipse/PyDev I managed to setup a Run Configuration, however the problem is that when I put the --reload option with PasteScript. I know that the python debugger has issues with this command because PasteScript does a subprocess.Popen() and it doesn't have the ability to keep track of child processes unless you set a remote debug session which I did. In fact this same configuration allows me to debug without problems in Eclipse/PyDev (--reload option + Remote Debugging). In fact what happens in PyCharm is that the breakpoints set in yourapp/config/middleware.py:make_app are hit, but after the ServeCommand calls serve() in PasteScript the debugger seems to die (although it says connected) and any other breakpoints that you have, in a controller for example, are not hit.
- When you mark a directory as source root the IDE works as expected: you can import modules from that directory. However when you run the project it doesn't add that directory to the PYTHONPATH (or sys.path) which I think is inconsistent behavior in an IDE.
- Adding an library (egg) to the project is buggy. I added a library to the interpreter and it was added with a bang (!) and a slash (/) at the end of PYTHONPATH. For example, pycharm-debug.egg would be added as pycharm-debug.egg!/ in PYTHONPATH. So I edited the xml configuration file to remove that trailing combination and it was fixed: my imports and run configuration worked. But now that I removed the library it keeps appaering up in PYTHONPATH.
Hope to see if anyone has any insights.