I was fortunate enough to stumble into a free trial of PyCharm right at the glorious 3.0 release. There was a flurry of rants and raves running through the Tech Art community upon this release and for good reason. With 3.0, JetBrains released an Open Source “Community” version which is fully featured. After using for a couple of days, I was hooked and splurged for a commercial license through my company, though I was prepared to scrape up all the spare change in the house to afford the Personal version and use it for the rest of my life.
Pycharm has all the usual features you’ve come to expect from any decent IDE: highlighting, completion, etc. The hotkey/popup features are quite awesome. CTRL+SHIFT+R (Navigate -> File) is the fastest way to open files in your project. The CTRL+SHIFT+A (Help -> Find Action) is your shortcut to all other shortcuts and popups.
If you spend a lot of time pointing to your mayapy.exe and adding and removing paths from your workspace, you’ll appreciate how much more intuitive these dialogs are than PyDev’s.
The Perforce integration is almost too good. It tries manage the ‘Current’ or ‘Active’ changelist and will automatically add any file you start to modify to this changelist. It is a little annoying the way it tries to organize every file you have open amongst the changelists but once you get used to it, it starts to have its benefits. PyCharm also keeps a list of recently used changelists which is quite handy, actually.
‘Darcula’ is a beautiful color scheme which comes default. And when I say ‘color’ I pretty much mean the absence of it. Greys are where it’s at when it comes to staring at code all day. There’s the token oranges when needed as well, but you can customize all UI colors, per usual.
Oh, the auto-save will make you lazy (and fast) as hell, too.
PyCharm’s code inspection is the most thorough I have ever seen. It is so thorough that I turn off the strict adherence to PEP 8 standards as our company deviates from these slightly. I’m one of those “0 in box types” even in my IDE in that I always fix all code inspections. This has the added benefit whenever you open any file, you can immediately see if there are simple syntax errors by the code inspection color highlighting in the margins. In the process of examining all the inspection notes, there are fairly detailed explanations of what the issues are and it offers to automatically fix them whenever possible. It has actually been my secret teacher and made me a much better programmer.
Each language has its own style settings and the settings for Python are quite complete: indentation, spaces, wrapping, blank lines, etc. Every option is available. Then you just auto-format before you save and viola! You’re code looks perfect.
Still need Wing
PyCharm fits nicely into my arsenal of coding tools right next to Wing IDE. PyCharm’s debugging uses the Pydev module which doesn’t compare to Wing Pro’s built-in features. Wing is still the king for real-time debugging of Maya and MotionBuilder or other external python applications, especially with the Debug Probe feature. But I’ve always used two IDEs in my day to day routine: Wing for debugging and Eclipse w/ Pydev for my main coding environment. PyCharm replaces PyDev as my main coding platform now.
The best part of PyCharm is it’s feel. It feels awesome, fast, tight, professional, snappy, very little crashing. Wing always feels a little slow and lagging. Eclipse/PyDev feels tighter than Wing but still doesn’t compare to PyCharm.
Download is available for Win, OSX, Linux and the Community version is now free and does pretty much everything you need. Then when you get hooked, go ahead and save up for a license (they deserve the 10th of a bitcoin).
All of this just scratches the surface really. I’m sure you’ll find several little goodies that make your day to day workflow a whole lot easier (list them here in the comments if you have the time!)
Do yourself a favor. Go out and install right now. You’ll never regret it. Enjoy!!
do you know of a good place where i can go to find out about getting pycharm setup with maya. seems like a lot of the info is old. for example i read somewhere on the pycharm community that the symbolic link setup is no longer necessary…but no explanation about how to configure things so that pycharm and maya play nice. any info much appreciated. thanks!
You set it up pretty much the same as you would with Eclipse/PyDev. Making Eclipse Soar Here’s some detailed instructions too: TAO thread
Pretty sure you don’t need the symbolic link as you mentioned. Some folks are working on sending commands back and forth between PyCharm and Maya. Though I tend to keep all my script bits and R&D code in the Script Editor inside of Maya, myself.
I’ve looked at PyCharm, but I haven’t been able to get the auto-complete to work. Have you, and if so, how?
Autocomplete, whether it be for maya.cmds, pymel.all, or pyfbsdk is largely about getting the proper module/package imported. Pycharm will go through all of the files and folders in the pythonpaths for your project and import everything into the project’s memory and should be aware of all commands in those files.
Sometimes, like in the case for pyfbsdk (MoBu python), the library is binary and does not provide the information needed for an IDE to auto-complete commands. In those cases, you can import a ‘stub’ file which is an ascii file that has all the commands in it for documentation and autocomplete purposes, you just need to import in this file cleverly. You can refer to this post: and roughly the same process applies for Eclipse/PyDev and PyCharm.
There’s an old copy of the pyfbsdk stub at PipelineConstructionSet.com
Thanks! Sometimes understanding ‘why’ is more useful than ‘how’, especially when it comes to troubleshooting. Now that I understand what’s trying to happen, it was easy enough to get it up and running. Thanks for the help! And the website is awesome, keep up the good work 😉