Closed dpastorv closed 3 years ago
I would like to know the answer to this question as well as I am getting the same behavior since I installed Renderman 21.7 on Blender 2.79b on Linux Mint 18. Usually, I can shoot down these errors myself but this one has proved intractable for me. Thanks for any guidance!
Something is going wrong with the import of the Renderman Python module from the look of it.
I'm having the same issue on Ubuntu 17.10 Renderman 21.7 and Blender 2.78
I have found a possible root cause of the issue, I believe blender is attempting to run prman.py in python 3 instead of 2.5. When running prman.py in python 2 no error occurs and when it is run in python 3 it returns:
Traceback (most recent call last): File "prman.py", line 102, in <module> class Rif(prman_for_python.Rif): NameError: name 'prman_for_python' is not defined
EDIT: Can confirm that this is the problem. I added a debug command into prman.py to output what version of python ran it and it was being run with python 3.6.
Blender uses python 3.5 so it can’t be run in 2.7 from within blender. Blenders been on python 3 for a while so it’s unusual that prman would work for this long and then all of a sudden develop issues
PRMan for Python itself says it only supports 2.5: https://renderman.pixar.com/resources/RenderMan_20/prmanForPython.html#caveats-limitations-future-directions
At the time that article was written (April 2009) that was true, but Python 3 bindings were added later on. You can’t run a Python 2.7 module in Blender. It requires Python 3, which is one of the reasons why the VFX industry still avoids Blender to some extent. Most of them are still using Python 2.7 for their pipelines.
Reinstall the addon without any spaces or hyphens in the addon directory name (remove "-master" from directory name. Then it should run.
Reinstall the addon without any spaces or hyphens in the addon directory name (remove "-master" from directory name. Then it should run.
I tried that and still see the error, i see these error when doing render using blender
Traceback (most recent call last):
File "/Users/romboutversluijs/Library/Application Support/Blender/2.78/scripts/addons/RenderManForBlender/__init__.py", line 64, in update
engine.create(self, data, scene)
File "/Users/romboutversluijs/Library/Application Support/Blender/2.78/scripts/addons/RenderManForBlender/engine.py", line 104, in create
engine.render_pass = RPass(scene, preview_render=engine.is_preview)
File "/Users/romboutversluijs/Library/Application Support/Blender/2.78/scripts/addons/RenderManForBlender/engine.py", line 204, in __init__
init_prman()
File "/Users/romboutversluijs/Library/Application Support/Blender/2.78/scripts/addons/RenderManForBlender/engine.py", line 79, in init_prman
import prman
File "/Applications/Pixar/RenderManProServer-22.2/bin/prman.py", line 80, in <module>
import prman_for_python_35 as prman_for_python
ImportError: dlopen(/Applications/Pixar/RenderManProServer-22.2/bin/prman_for_python_35.so, 2): Library not loaded: /Library/Frameworks/Python.framework/Versions/3.5/Python
Referenced from: /Applications/Pixar/RenderManProServer-22.2/bin/prman_for_python_35.so
Reason: image not found
This is the output for IPR render using blender
Exception ignored in: <bound method RPass.__del__ of <RenderManForBlender.engine.RPass object at 0x11bcd86a0>>
Traceback (most recent call last):
File "/Users/romboutversluijs/Library/Application Support/Blender/2.78/scripts/addons/RenderManForBlender/engine.py", line 220, in __del__
del self.ri
AttributeError: ri
Exception ignored in: <bound method PRManRender.__del__ of <bpy_struct, PRManRender invalid>>
Traceback (most recent call last):
File "/Users/romboutversluijs/Library/Application Support/Blender/2.78/scripts/addons/RenderManForBlender/__init__.py", line 51, in __del__
if hasattr(self, "render_pass"):
ReferenceError: StructRNA of type PRManRender has been removed
Traceback (most recent call last):
File "/Users/romboutversluijs/Library/Application Support/Blender/2.78/scripts/addons/RenderManForBlender/operators.py", line 492, in invoke
engine.ipr = RPass(context.scene, interactive=True)
File "/Users/romboutversluijs/Library/Application Support/Blender/2.78/scripts/addons/RenderManForBlender/engine.py", line 204, in __init__
init_prman()
File "/Users/romboutversluijs/Library/Application Support/Blender/2.78/scripts/addons/RenderManForBlender/engine.py", line 79, in init_prman
import prman
File "/Applications/Pixar/RenderManProServer-22.2/bin/prman.py", line 80, in <module>
import prman_for_python_35 as prman_for_python
ImportError: dlopen(/Applications/Pixar/RenderManProServer-22.2/bin/prman_for_python_35.so, 2): Library not loaded: /Library/Frameworks/Python.framework/Versions/3.5/Python
Referenced from: /Applications/Pixar/RenderManProServer-22.2/bin/prman_for_python_35.so
Reason: image not found
This is when i tried using TR for render to
Exception ignored in: <bound method RPass.__del__ of <RenderManForBlender.engine.RPass object at 0x11bce5e80>>
Traceback (most recent call last):
File "/Users/romboutversluijs/Library/Application Support/Blender/2.78/scripts/addons/RenderManForBlender/engine.py", line 217, in __del__
if self.is_interactive and self.is_prman_running():
File "/Users/romboutversluijs/Library/Application Support/Blender/2.78/scripts/addons/RenderManForBlender/engine.py", line 561, in is_prman_running
return prman.RicGetProgress() < 100
NameError: name 'prman' is not defined
Traceback (most recent call last):
File "/Users/romboutversluijs/Library/Application Support/Blender/2.78/scripts/addons/RenderManForBlender/operators.py", line 492, in invoke
engine.ipr = RPass(context.scene, interactive=True)
File "/Users/romboutversluijs/Library/Application Support/Blender/2.78/scripts/addons/RenderManForBlender/engine.py", line 204, in __init__
init_prman()
File "/Users/romboutversluijs/Library/Application Support/Blender/2.78/scripts/addons/RenderManForBlender/engine.py", line 79, in init_prman
import prman
File "/Applications/Pixar/RenderManProServer-22.2/bin/prman.py", line 80, in <module>
import prman_for_python_35 as prman_for_python
ImportError: dlopen(/Applications/Pixar/RenderManProServer-22.2/bin/prman_for_python_35.so, 2): Library not loaded: /Library/Frameworks/Python.framework/Versions/3.5/Python
Referenced from: /Applications/Pixar/RenderManProServer-22.2/bin/prman_for_python_35.so
Reason: image not found
Im tried both bl 2.78c and 2.79b on osx 10.11.6
Blender uses python 3.5 so it can’t be run in 2.7 from within blender. Blenders been on python 3 for a while so it’s unusual that prman would work for this long and then all of a sudden develop issues
Im just new to this renderman, but i did see this on a page. Though that was 21, 22 states the same, see here
Though on that other page something else is stated indeed https://renderman.pixar.com/resources/RenderMan_20/prmanForPython.html#caveats-limitations-future-directions
It works with 3.5 as it launches with blender 2.79b
I did notice just now that it also doesnt seem to find the python lib in the frameworks folder. There is no 3.5 in that folder only 3.4 and 3.6?
That is at the bottom of the error
ImportError: dlopen(/Applications/Pixar/RenderManProServer-22.2/bin/prman_for_python_35.so, 2): Library not loaded: /Library/Frameworks/Python.framework/Versions/3.5/Python
Referenced from: /Applications/Pixar/RenderManProServer-22.2/bin/prman_for_python_35.so
Reason: image not found
There is a 3.5 python lib but that is inside blender app. Not in the frameworks path
EDIT Okay i installed python 3.5.4 and now some did happen. Though it results in an instant crash it a step further i guess. Anyone familiar with this crash? Ill try to look at this repo and see if i can find something related.
Writing: /tmp/cornell-box-TutorialFinished.crash.txt
Segmentation fault: 11
logout
Saving session...
@jdent02 you probably are using a RenderMan prior to 22 than aren't you?
Yes, I held on to 21.7. Pixar hasn't approved any significant changes to this exporter since last year so I was pretty positive it wouldn't work with 22.
One of our engineers started working on the new plugin but we don't have a release date yet. It is all hinging on the public availability of our new API...
Why not keep old api available by the way? I dont understand this is only available once you pay the license.
Because they don’t want to support previous non commercial versions. I can understand that from a business standpoint.
Sent from my iPhone
On Nov 20, 2018, at 5:47 PM, schroef notifications@github.com<mailto:notifications@github.com> wrote:
Why not keep old api available by the way? I dont understand this is only available once you pay the license.
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHubhttps://github.com/prman-pixar/RenderManForBlender/issues/576#issuecomment-440469994, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AM5RFJlYuc6iI8BN_7V81RppzfgJIOdBks5uxJSIgaJpZM4UJOpz.
You don't need to support old API, if you state that only latest new releases are supported. Thats how many other applications also handle it.
I've got this weird error. No issues at install, but no preview as shown.
Also if I try to render on the preview it displays like this.
and when I try to render in IPR i got this
in the console the error displays like this. Exception ignored in: <bound method RPass.del of <RenderManForBlender-master.engine.RPass object at 0x0000020AEA51F630>> Traceback (most recent call last): File "C:\Program Files\Blender Foundation\Blender\2.79\scripts\addons\RenderManForBlender-master\engine.py", line 220, in del del self.ri AttributeError: ri Exception ignored in: <bound method PRManRender.del of <bpy_struct, PRManRender invalid>> Traceback (most recent call last): File "C:\Program Files\Blender Foundation\Blender\2.79\scripts\addons\RenderManForBlender-master__init.py", line 51, in del if hasattr(self, "render_pass"): ReferenceError: StructRNA of type PRManRender has been removed Traceback (most recent call last): File "C:\Program Files\Blender Foundation\Blender\2.79\scripts\addons\RenderManForBlender-master__init__.py", line 61, in update engine.create(self, data, scene) File "C:\Program Files\Blender Foundation\Blender\2.79\scripts\addons\RenderManForBlender-master\engine.py", line 104, in create engine.render_pass = RPass(scene, preview_render=engine.is_preview) File "C:\Program Files\Blender Foundation\Blender\2.79\scripts\addons\RenderManForBlender-master\engine.py", line 204, in init__ init_prman() File "C:\Program Files\Blender Foundation\Blender\2.79\scripts\addons\RenderManForBlender-master\engine.py", line 79, in init_prman import prman File "C:\Program Files\Pixar\RenderManProServer-21.7\bin\prman.py", line 102, in
class Rif(prman_for_python.Rif):
NameError: name 'prman_for_python' is not defined
location::-1