State:New|TargetRelease:No Target|icon_bug|icon_nuke|database:public|Resolution:Fixed|BugID:357416|
Problem summary
It is possible to run Nuke commands through a Python module using a Python interpreter that is shipped with Nuke itself.
https://learn.foundry.com/nuke/developers/111/pythondevguide/nuke_as_python_module.html
This Nuke Python interpreter allows you to work within Nuke's Python API, without accessing a script environment and is generally launched through terminal using a Nuke render license.
There has been an issue discovered when attempting to render a jpeg file from Write node via the Python interpreter. There appears to be an inability to call the format specific jpeg related knobs of _jpeg_quality and _jpeg_sub_sampling when rendering.
This issue is isolated to Nuke 11.0/11.1 releases only within Linux-based operating systems and does not occur through the standard GUI or terminal launched Nuke.
Note: This issue does not appear to occur in all format writers, such as the dpxWriter or the exrWriter and the issue appears to be isolated to the jpegWriter currently.
Customer reported version
nuke.11.1v4
Customer reported platform
centos7
Steps to reproduce
1) Open a new terminal window in a Linux OS
2) Launch the Python interpreter that is located in the same directory as the Nuke application.
For example:
/usr/local/Nuke11.1v4/Python
3) When you are in the Python environment (indicated by the '>>>' state), enter the following into the terminal window:
a) import nuke
To open the Nuke environment
followed by the following:
b) w = nuke.createNode('Write')
To set a variable for a Write node
c) w['file'].fromUserText('foo.jpg')
To rename the Write file knob to 'foo.jpg'
d) print '\n'.join(sorted(w.knobs()))
To print out all the Write knobs in a list format
Result: You will receive a terminal callback of all knobs, with the exception of the jpeg specific knobs of _jpeg_quality and _jpeg_sub_sampling.
4) To confirm regression, re-run the above three steps in Nuke 10.5v7
Result: All expected knobs will be there.
Workaround
Unknown. Avoid using the Python interpreter to render jpeg files through a Write node within Linux environments. As an alternative create the Write node either through the Nuke GUI and/or terminal mode, or use an alternative format such as DPX or EXR.
Reproduced by support
This bug has been reproduced in:
Nuke 11.1v4 - CentOS 6.9
Nuke 11.1v1 - CentOS 6.9
Nuke 11.0v4 - CentOS 6.9
Nuke 11.0v1 - CentOS 6.9 - regression
Unable to reproduce bug in:
Nuke 11.1v4 - Windows 7 - MacOS 10.13.4
Nuke 10.5v7 - CentOS 6.9 - Windows 7 - MacOS 10.13.4
Earliest version tested
Nuke 10.5v7
- This issue no longer appears in this version and has regressed
Expected behaviour
Ability to be able to access the jpeg specific knobs within the Python interpreter
Actual behaviour
Unable to access the jpeg specific knobs within the Python interpreter
We're sorry to hear that
Please tell us why