houdini/houdinifx 19.0 python wrappers are broken in Monterey

   1162   2   1
User Avatar
Member
6 posts
Joined: May 2014
Offline
Hi all!
I also wrote a bug report (#127553), but I thought of sharing it here too for visibility, in case it saves other macOS users some time.

To reproduce this, get access to a computer with macOS Monterey 12.3+ installed.

Open a terminal with the houdini env set up:
$ open /Applications/Houdini/Houdini19.0.561/Utilities/Houdini\ Terminal\ 19.0.561.app
Or, in alternative, set up the Houdini env via the dedicated script:
$ cd /Applications/Houdini/Houdini19.0.561/Frameworks/Houdini.framework/Versions/Current/Resources
$ source houdini_setup_bash

Try to run 'houdinifx' from the terminal.

Actual vs expected behavior

Expected behavior: houdinifxstarts fine from the shell session.

Actual behaviour:
$ houdinifx
-bash: /Applications/Houdini/Houdini19.0.561/Frameworks/Houdini.framework/Versions/Current/Resources/bin/houdinifx: /usr/bin/python: bad interpreter: No such file or directory

The issue here is that the shebang used is #!/usr/bin/python:

$ cat /Applications/Houdini/Houdini19.0.561/Frameworks/Houdini.framework/Versions/Current/Resources/bin/houdinifx | grep python
#!/usr/bin/python

But python2 has been deprecated since Monterey 12.3.
As matter of fact, on a new clean system (without user aliases):
$ which python
will return nothing, and

$ which python3
will return /usr/bin/python3.

For reference, see:
- https://developer.apple.com/documentation/macos-release-notes/macos-12_0_1-release-notes [developer.apple.com]
- https://www.macrumors.com/2022/01/28/apple-removing-python-2-in-macos-12-3/. [www.macrumors.com]

This means that there's no longer a /usr/bin/pythoninstall bundled with Monterey 12.3+. As such, using it in a wrapper script is bound to fail.
The interesting thing is that this bug happens also with the version of houdini 19 that uses python3 internally.

To reproduce this behavior, I tested different combinations (still for 19.0.561) :
  • macOS build for py3
    houdinifx is still a python script using #!/usr/bin/python. Tested in houdini-19.0.561-macosx_x86_64_clang11.0_10.15
  • macOS build for py2
    houdinifx is still a python script using #!/usr/bin/python. Tested in houdini-py2-19.0.561-macosx_x86_64_clang11.0_10.15
  • linux build for py3
    houdinifx is a bash script (houdini-19.0.531-linux_x86_64_gcc9.3/houdini/bin/houdinifx)
  • linux build for py2
    houdinifx is a bash script (houdini-py2-19.0.561-linux_x86_64_gcc9.3/houdini/bin/houdinifx)

As a quick hotfix, you guys could at least fix the python3 build for 19.0.561 and make the houdinifx wrapper script use python3 instead. This build should however be marked as non compatible with Monterey 12.3+.

Of course, houdinifx can still be run directly by avoiding the python wrapper that runs houdini/houdinifx, but I believe this issue should be addressed since "by default" the "houdini terminal" workflow is not compatible with recent macOS versions.

It's worth nothing that in 19.5.303 this behavior has changed and 'houdinifx' is just a bash wrapper, so this works fine once again:

$ cd /Applications/Houdini/Houdini19.5.303/Frameworks/Houdini.framework/Versions/Current/Resources
$ which houdinifx
/Applications/Houdini/Houdini19.5.303/Frameworks/Houdini.framework/Versions/Current/Resources/bin/houdinifx
$ houdinifx


Valerio
Edited by vvzen - Sept. 20, 2022 10:25:03
User Avatar
Staff
467 posts
Joined: Aug. 2019
Offline
This issue was resolved in 19.0.562.
User Avatar
Member
6 posts
Joined: May 2014
Offline
johnmather
This issue was resolved in 19.0.562.
Great to know!

In their replies, support told me:

Side Effects Support Ticket: #127553

Hello,

Anything above 19.0.589 should just work.

so I went with 19.0.720, and I can see the wrappers are back to being simple bash scripts.
  • Quick Links