Blog of Rob Galanakis (@robgalanakis)

Maya Windows Binaries

Since standard Python binaries do not work with Maya 2013 and newer on Windows (because it uses VS2010 and up compiler, whereas standard Python 2.6 and 2.7 use VS2008 compiler), some community members have done the work to compile needed binaries.

I didn’t do any of this work myself, I am just hosting it here. I also haven’t tested these, as at the time of this writing I don’t have a Windows machine available.

Information about compiler versions can be found at The gist is:

  • Maya 2012 and earlier use whatever compiler Python uses.
  • Maya 2013 and 2014 use Python 2.6 compiled with VS2010. The same binaries should be compatible in Maya 2013 and 2014.
  • Maya 2015 uses Python 2.7 compiled with VS2012 Update 4.
  • Not sure about Maya 2016, will update when I know!

All available binaries on this page are in They are organized alphabetically below by Maya version.

If you have something to contribute (x86 versions?), feel free to send me an email,

Maya 2013/2014 (VS2010) .py and .pyd files. Put into site-packages. From ex-colleagues. .py and .pyd files. Put into site-packages. From ex-colleagues. .py and .pyd files. Put into site-packages. From ex-colleagues. .py and .pyd files. Put into site-packages. From ex-colleagues. Is a zipped up PyQt4 folder and sip.pyd file. Just unzip into a site-packages folder or any folder on your sys.path. Compiled by Nathan Horne. You should be able to run this installer, though using the site-packages version instead of the install version would probably be easier. Compiled by Verious. Is a zipped up PySide folder. Just unzip into a site-packages folder or any folder on your sys.path. Compiled by Verious. .py and .pyd files. Put into site-packages. From ex-colleagues.

Maya 2015 (VS2012)

p4python-2015×64: P4Python API compiled with VS2012 Update 4, for Maya/Max 2015×64. Compiled by YCDIVFX.

pyzmq.14.3.0-2015×64: PyZMQ compiled for Maya/Max 2015×64. Compiled by YCDIVFX.

8 thoughts on “Maya Windows Binaries

  1. […] I’ve put together a page to link and host all the various Python C extensions compiled for various flavors of Autodesk Maya on Windows: […]

  2. Andres Weber says:

    Good thing you did this! I was just going a little crazy since I have 2017 installed and was trying to go through your book and got a bit stuck when I realized I didn’t want to compile it myself and waste some time! Thanks for putting these up. Also thanks for the book so far, it’s the best resource I’ve found yet as a professional where the code is much better than the usual script level understanding of books you have a great comprehensive take on it.

  3. For anyone still in the market for Perforce binaries, these thankfully still work with Maya 2018/2019/2020. Thank you for continuing to host this site Rob, I’m sure you’ve saved more than just me from having to try and compile perforce’s APIs against Maya. I can’t wait for the switch to Python3 and we can finally start using the maintained APIs. But until then, this does the trick, and thank you!

    1. Grant Wallace says:

      Hey Nicholas, I also need to get Perforce working with Maya 2020. Could you help me understand what to do with these files? I downloaded the p4 and p4api files from above and placed them in my Python27/Lib/sitepackages.

      But now I’m getting a
      ‘[P4.connect()] Connect to server failed; check $P4PORT. SSL library must be at least version 1.0.1.’

      At least I can connect now to the API now. Any ideas?

    2. Hi Grant, it’s possible either 1) your version of Python 2.7 has a very old SSL that doesn’t have 1.0.1 support (very unlikely), or the Perforce server is not allowing 1.0.1 or other old version connections and the Python OpenSSL isn’t negotiating the right version.
      This is pretty tricky- can you try connecting to the P4 server from a newer version of Python, outside of Maya? And then check that SSL library version, and see if there is a way to tell what cipher/version is being used.
      (I am no expert in this but have had to debug similar issues, hopefully that is a bit of information to go on)
      Let us know how it goes!

    3. Grant Wallace says:

      Thanks for the help!

      We ended up going for another route. Instead of trying to use the p4api, we went with calling p4 commands with a mix of os.system and subprocess.check_output/.Popen.

      It’s not perfect, and needs more work. But we can successfully check files out and mark files for add automatically in the users perforce workspace.

      There is a lot of ‘info gathering’ code used before this, but this is the meat and potatoes of what we made.

      ChangelistNumberList = []
      ChangelistInfo = []

      os.system(‘p4 –field “Description=Change List Created by Publish Tool” –field “Files=” change -o | p4 change -i’)

      p4ClientText = subprocess.check_output(‘p4 set P4CLIENT’)
      split = p4ClientText.split(“=”, 1)
      badClient = split[1]
      split2 = badClient.split(” “, 1)
      currentClient = split2[0]

      ChangeText = subprocess.check_output(‘p4 changes -c’ + ‘ ‘ + currentClient + ‘ ‘ + ‘-m1’)
      split = ChangelistInfo[0].split(” “)
      ChangelistNumberStr = split[1]
      ChangelistNumber = str(ChangelistNumberStr)
      for file in filesToCheckOut:
      os.system(‘p4 add -c’ + ‘ ‘ + ChangelistNumber + ‘ ‘ + file)
      os.system(‘p4 edit -c’ + ‘ ‘ + ChangelistNumber + ‘ ‘ + file)

      I hope this helps someone!

    4. Thanks Grant. There are quite a few libraries that wrap system calls like this, and it works pretty well. I will note that it can be very slow on Windows. I’ll also mention that writing tests for this sort of thing is very helpful, since it involves documenting the output that you’re parsing (trying to follow the code otherwise is impossible without trial and error). Glad you found a solution (and I’d encourage you to write unit tests!).

Leave a Reply