Warning 'ragdoll' Python package could not be found, no menu will be created

Hey there! Just tried to install ragdoll to try it out, but the menu would not be created. I just get a Warning (title) about it and after searching a bit online I haven’t found a solution.

If I run the
from ragdoll import interactive
interactive.install()

code in the download section I get a different error: Qt.py line 1961: No Qt binding were found.

I’m a bit stuck so I just wanted to ask if I’m missing something here

Hi @lukkram, welcome to the forums! :partying_face:

Sounds like a bad install. How did you install? What platform are you on, and what version of Maya? Ragdoll supports Windows 10+, Linux (CentOS/Rocky Linux) and MacOS, along with Maya 2019-2026.

And how did you load Ragdoll, it should happen via the Maya Plug-in Manager window.

maya 2025 win11

I downloaded the .msi and ran it, restarted maya, and ticked ragdoll in the Plug-in manager. Don’t think I did anything wrong there but maybe something weird happened

Hm, could there be some anti-virus deleting files? Have a look in the maya folder, under modules/ you should have a folder similar to:

C:\Users\lukkram\Documents\maya\modules\Ragdoll-2025_10_06\scripts\ragdoll

And once loaded, you should be able to run this in your Script Editor.

import ragdoll

If that didn’t work, then have a look at what this prints.

import sys
print("\n".join(sys.path))

It should be 10+ different paths on your file system, one of them should point to that modules folder. Even without Ragdoll having been loaded.

If it isn’t there, that suggests the .mod file isn’t found on your system. So check your MAYA_MODULE_PATH.

import os
print("\n".join(os.environ["MAYA_MODULE_PATH"].split(os.pathsep)))

This too will print a number of paths, one of them should be to that modules directory. If that isn’t the case, then you have a non-default Maya install; typical in a production environment. What you then need to do is move your Ragdoll install to one of those paths. That’s where Maya will attempt to look for modules such as Ragdoll.

Let me know how it goes and we’ll take it from there. :slight_smile:

didn’t work, but when looking at the things it printed from
import sys
print(“\n”.join(sys.path))

I couldn’t find any from ragdoll, but I did find some from other tools in the modules folder. And taking a look in that folder, there’s the .mod files and follders from those tools as well as the one from ragdoll. I have a Ragdoll-2025_10_06 folder and a Ragdoll-2025_10_06.mod file

Hm, unusual.

Given that you can open the Plug-in Manager and spot Ragdoll there, that means the .mod file is found. That mod file is what makes the ragdoll Python library accessible too, so it’s odd that it doesn’t.

Are you able to test on a separate machine? How are you launching Maya, is via the Start Menu or some launcher program of sorts?

Ok, let’s try doing what the module does manually.

import os
import sys
from maya import cmds

# Replace me
version = "2025_10_06"

def find_pythonpath():
    for path in os.environ["MAYA_MODULE_PATH"].split(os.pathsep):
        ragdoll_path = os.path.join(path, "Ragdoll-%s" % version)
        
        if os.path.exists(ragdoll_path):
            pythonpath = os.path.join(ragdoll_path, "scripts")
            assert os.path.exists(pythonpath), "Missing 'scripts' path"
            
            ragdoll_package = os.path.join(pythonpath, "ragdoll")
            assert os.path.exists(ragdoll_package), "Missing 'ragdoll' package"
            
            return pythonpath


pythonpath = find_pythonpath()
assert pythonpath, "Could not find Ragdoll's python path"

if pythonpath not in sys.path:
    print("Added '%s' to PYTHONPATH" % pythonpath)
    sys.path.insert(0, pythonpath)
else:
    print("'%s' already in PYTHONPATH" % pythonpath)

print("Loading Ragdoll")
cmds.loadPlugin("ragdoll")

Replace the top “version” with the version you have on disk, and run this. It should load the plug-in like you would via the Plug-in Manager, except it will manually add the missing Ragdoll package to Python before hand.

Let me know what it says.

it returned this:
‘C:/Users/lukkram/Documents/maya/modules\Ragdoll-2025_10_06\scripts’ already in PYTHONPATH
Loading Ragdoll
Warning: ‘ragdoll’ Python package could not be found, no menu will be created
Error: line 1: Plug-in, “locomotion”, was not found on MAYA_PLUG_IN_PATH.
Error: Failed to load locomotion.

I also tried after runing the .msi for locomotion and it returned this instead:
Error: NameError: file line 24: name ‘sys’ is not defined

oh yeah, and the maya launching is just from the maya desktop shortcut and then been just clicking new on the start menu for these tests

Ok, we are close. I’ve updated the script above, it was missing a line.

ok this time it returned this:

Added 'C:/Users/lukkram/Documents/maya/modules\Ragdoll-2025_10_06\scripts' to PYTHONPATH
Loading Ragdoll
# Warning: 'ragdoll' Python package could not be found, no menu will be created
# Warning: 'locomotion' Python package could not be found, no menu will be created
// Locomotion is loaded

Heya @lukkram :wave:

Before Marcus is back, can you re-launch Maya and then run this script? To see what Qt has to say about this.

import PySide6;print(PySide6)
import os; os.environ["QT_VERBOSE"] = "1"

from ragdoll import interactive
interactive.install()

Thanks!

I will once I get back home, had to go catch a train

Hi @lukkram just checking in on this, did you manage to get to the bottom of it?

hi there! sorry for the delay, I got a bit busy. But just ran what david sent and it returned this

<module 'PySide6' from 'C:\\Program Files\\Autodesk\\Maya2025\\Python\\Lib\\site-packages\\PySide6\\__init__.py'>
Qt.py [info]: Order: 'PySide2', 'PySide2'
Qt.py [info]: Trying PySide2
Qt.py [info]: ImportError: No module named 'PySide2'
Qt.py [info]: Trying PySide2
Qt.py [info]: ImportError: No module named 'PySide2'
# Error: ImportError: file C:\Users\lukkram\Documents\maya\modules\Ragdoll-2025_10_06\scripts\ragdoll\vendor\Qt.py line 1961: No Qt binding were found.

Aha, I think that’s the culprit. On your system, I suspect there is an environment variable forcing the Qt wrapper (Qt.py) to only consider PySide2, which was what Maya 2024 and below was using.

The environment variable is called QT_PREFERRED_BINDING and you can confirm by running this.

import os
print(os.getenv("QT_PREFERRED_BINDING"))

This will likely print "PySide2". It would be set either via your global Windows Environment Variables manager, or any launcher script you used to launch Maya with.

If so, then your safest bet is to try and understand why this was added in the first place, and ideally remove it. Alternatively, you can add PySide6 to it.

See here for details.

hmm, well something odd is going on.

if I run
set QT_PREFERRED_BINDING=PySide5;PyQt5
restart maya and check with

import os
print(os.getenv("QT_PREFERRED_BINDING"))

it will return PySide5;PyQT5

but if I do the same with set QT_PREFERRED_BINDING=PySide6;PyQt6
it returns PySide2;PySide2 instead.

Idk, but this looks to me kinda like an integer overflow, bc it’s “going over the limit” and returning the first option instead or something like that

Hey @lukkram

Do you mean this?

  1. Execute set QT_PREFERRED_BINDING=PySide6;PyQt6 in a terminal
  2. Launch Maya from that terminal
  3. Run print(os.getenv("QT_PREFERRED_BINDING")) in Maya Script Editor
  4. You get PySide2;PySide2?

That sounds like there is a Maya startup script overriding the value of QT_PREFERRED_BINDING. :thinking:

Can you try this script to load Ragdoll, after Maya is launched?

import os
os.environ["QT_VERBOSE"] = "1"
os.environ["QT_PREFERRED_BINDING"] = ""  # Unset the value
cmds.loadPlugin("ragdoll")

Thanks!

That did it, ragdoll finally loaded :smiley:

1 Like

Great to hear it’s now solved. This one is hard to address on our end… That Maya 2025 session is misconfigured and unable to use Qt.py for any project that uses it.

That said, the error message could definitely have been more descriptive. Thanks for reporting this and let us know if you run into any other issues!