Deploying scripts for Maya as Python packages


Hi everyone!

I am currently looking for a new tool deployment system for Maya. Our current system just involves a common svn repo that all the artists check out.

One idea I had was to deploy scripts as Python wheel packages.

Artists will use a custom tool in Maya for installing packages and receiving updates. For each package, you can select which version to install and can easily downgrade if you run into problems.

So far I have worked out how to create and deploy Python packages using the Python bundled with Maya. The next step is to write the packaging tool inside of Maya and make it artist friendly.

I would like to know if anyone has done something like this before, or if there is a better deployment system I should be using?


So my biggest worry would be the fact that the tool is going to be running inside Maya, and will most likely be updating scripts / libraries that will require you to restart Maya to function properly. Especially if you happen to be using any compiled pyd, dll or so files, as these can get file locked while the Application is running, and require you to shutdown completely before they can be overwritten.

It might be more useful overall to consider creating a standalone tool that can serve as a deployment hub for more than just Maya in the future. That way if you add more apps to your pipeline, you aren’t reinventing the deployment wheel each and every time.

Basically you’d launch the updater before Maya starts, and once its done updating kick off the new session of Maya, this way users always have the most up-to-date toys.


In my case, I’m using a management tool made with c# for all the art tools like maya and photoshop, 3ds maxs, and run almost art tools on this tool and check what’s updated in perforce when this tool is started.
anyway, I think better creating management tool worked standalone.


Rob G. used to run an in-house pypy server for this purpose. I generally don’t like it because the end users aren’t programmers maintaining their own systems, they just want to get their jobs done. If the upgrade is manual for them, it’s going to be unpopular. If it’s automatic you’re rolling your own anyway. If you let people customize, you’re also buying lots of bugs that only happen to one or two users. So, I’d opt for something simple and more standardized.

Lots of good info from older threads here and here