System running scripts from two different Maya and Houdini interpreters

228 views
Skip to first unread message

Totally Zen

unread,
Nov 10, 2021, 10:25:04 AM11/10/21
to Python Programming for Autodesk Maya
Hi guys, let me see if I can explain it in an easy way, without generating more doubts about what I want.

Can I run Maya and Houdini scripts in the same process?

Example... I'll just be a code in PYTHON that will need the maya interpreter for the pymel and hpython code of the houdini...

Can I have these two or is there no such possibility?

Justin Israel

unread,
Nov 10, 2021, 12:12:25 PM11/10/21
to python_in...@googlegroups.com
I've never tried it, but given the right settings I am guessing it should be possible. The key would be to have a compatible python major/minor version for both the Maya and Houdini versions in the same env.
Usually you would bootstrap a Maya process with mayapy, or a houdini process with hython. Those are usually wrapper scripts that set environment variables to point at the python distribution that comes with that version of the dcc. You can set the environment externally in a way where you can just start a normal python interpreter and import Maya, as long as it is the compatible python version. 
So if you bootstrap a compatible combination of mayapy and hython, you might be able to import both of their core libraries. 

--
You received this message because you are subscribed to the Google Groups "Python Programming for Autodesk Maya" group.
To unsubscribe from this group and stop receiving emails from it, send an email to python_inside_m...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/python_inside_maya/c7179212-45b6-4d11-ac56-fec98e67fa31n%40googlegroups.com.

Totally Zen

unread,
Nov 10, 2021, 1:25:31 PM11/10/21
to Python Programming for Autodesk Maya
Okay, but I'm still aimless, lol
what I have and I don't know if something answers what it says would be the poath configured for Maya and the other for Houdini.

:(

Justin Israel

unread,
Nov 10, 2021, 2:50:06 PM11/10/21
to python_in...@googlegroups.com
On Thu, Nov 11, 2021 at 7:25 AM Totally Zen <atu...@gmail.com> wrote:
Okay, but I'm still aimless, lol
what I have and I don't know if something answers what it says would be the poath configured for Maya and the other for Houdini.

I'm not sure how to provide more help without better understanding your situation. First off, are you on windows or linux? I don't really know what to suggest as the steps for windows, so someone else might need to chime in. But if you are on linux, you can cat the contents of mayapy and hython and see the way they set up the environment before starting the actual maya or houdini process.

Are you trying to run a script from within a Maya or Houdini GUI? Or are you trying to write a command-line script that can load maya and houdini at the same time? If you are trying to run this script within Maya or Houdini GUI, then its going to be more difficult since you need to control the environment before the application starts, to have access to the other application import paths, or you have to add them to your sys.path.

Either way, this sounds like it might be a bit complex to describe in steps for you.
 

Kenneth Ibrahim

unread,
Nov 10, 2021, 2:53:18 PM11/10/21
to python_in...@googlegroups.com
Justin,

You're now a Unity employee? ;-)

Big news!!



--
"God is a metaphor for a mystery that absolutely transcends all human categories of thought. It's as simple as that!" - Joseph Campbell

Justin Israel

unread,
Nov 10, 2021, 3:00:44 PM11/10/21
to python_in...@googlegroups.com


On Thu, 11 Nov 2021, 8:53 am Kenneth Ibrahim, <kenib...@gmail.com> wrote:
Justin,

You're now a Unity employee? ;-)

Big news!!

This very second, not yet. But effectively yes, within the next month or so ;-) 

Totally Zen

unread,
Nov 19, 2021, 2:33:35 PM11/19/21
to Python Programming for Autodesk Maya
Sorry for the delay, I've been very busy !!!

I need to work externally with Maya and Houdini at the same time.

Justin Israel

unread,
Nov 19, 2021, 4:19:43 PM11/19/21
to python_in...@googlegroups.com


On Sat, 20 Nov 2021, 8:33 am Totally Zen, <atu...@gmail.com> wrote:
Sorry for the delay, I've been very busy !!!

I need to work externally with Maya and Houdini at the same time.

Then you will have to arrange to start a python interpreter with a compatible version of python to both Maya and houdini, and to have access to both bundled python environments. Read the mayapy and houdini wrapper scripts for hints. 

Otherwise you can try approaching this using subprocess, and to start either mayapy or hython and then do operations in the other one by starting a child process. Or start a normal python interpreter and run both Maya and houdini child processes. 

Totally Zen

unread,
Nov 19, 2021, 4:54:25 PM11/19/21
to Python Programming for Autodesk Maya
I need to know how to do this, look for some model to base myself on! thank you very much, i think i understand!
;)

Totally Zen

unread,
Nov 19, 2021, 5:41:12 PM11/19/21
to Python Programming for Autodesk Maya
but I know it will have to be using mayapy and hython

Em sexta-feira, 19 de novembro de 2021 às 18:19:43 UTC-3, justin...@gmail.com escreveu:

Marcus Ottosson

unread,
Nov 20, 2021, 6:05:51 AM11/20/21
to Python Programming for Autodesk Maya

I wonder whether wires have been crossed, and that the question isn’t about accessing Maya and Houdini libraries from one process, but one process calling out to both Maya and Houdini?

For example, is this what you want?

import hou  
from maya import cmds
cmds.displayWarning("I'm Maya, and this is a Houdini node: %s" % hou.node("/obj"))

Or this?

import subprocess
maya_exe = r"c:\program files\autodesk\maya2022\bin\mayapy.exe"
houdini_exe = r"c:\program files\sidefx\houdini16.0\bin\hpython.exe"
pymel_script = r"c:\path\to\maya_script.py"
houdini_script = r"c:\path\to\houdini_script.py"
subprocess.call("%s -m %s" % (houdini_exe, houdini_script))
subprocess.call("%s -m %s" % (maya_exe, maya_script))

The first example will most likely be very unstable; both Maya and Houdini will have assumed they are the only ones loading libraries into the process. It’d be like having both Qt 5.4 and 5.12 imported at the same time. Technically possibly, probably, but probably not a good idea.

The second example would allow you to write your two scripts that automate Maya and Houdini separately, and trigger both of them from a terminal. My impression is that this is what you’re looking for.

Totally Zen

unread,
Nov 22, 2021, 1:55:11 PM11/22/21
to Python Programming for Autodesk Maya
I'm having this problem:

C: \ Program Files \ Side Effects Software \ Houdini 18.5499 \ bin \ hython.exe: Import by file name is not supported.
C: \ Program Files \ Autodesk \ Maya2018 \ bin \ mayapy.exe: Import by file name is not supported.

Marcus Ottosson

unread,
Nov 22, 2021, 3:54:49 PM11/22/21
to Python Programming for Autodesk Maya

Yes it wasn’t meant to run, it was meant to communicate an idea. :) Does it make sense what it’s trying to do? Is it what you are looking for? If so, subprocess is the right module to accomplish this task. And, it’s possible you can remove the -m and it may just work as-is.

Totally Zen

unread,
Nov 22, 2021, 4:10:53 PM11/22/21
to Python Programming for Autodesk Maya
First thank you.
Today what I'm doing is test with pytest, and I have to run command using pymel/cmd and hou.
And to satisfy maya in my test I run in VSCODE the command & "../mayapy.exe" -m pytest .\test\maya

And if it's houdini
& "../hython.exe" -m pytest .\test\houdini

I'd like not to worry about running my tests by putting the interpreter... but just running pytest
Reply all
Reply to author
Forward
0 new messages