[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [29407] trunk/blender/release/scripts/io/ engine_render_pov.py: [#22496] OpenSuse 11.2 The problem with built-Povray

Campbell Barton ideasman42 at gmail.com
Fri Jun 11 15:45:58 CEST 2010


Revision: 29407
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=29407
Author:   campbellbarton
Date:     2010-06-11 15:45:58 +0200 (Fri, 11 Jun 2010)

Log Message:
-----------
[#22496] OpenSuse 11.2 The problem with built-Povray
give a better error message when povray isnt found.

Modified Paths:
--------------
    trunk/blender/release/scripts/io/engine_render_pov.py

Modified: trunk/blender/release/scripts/io/engine_render_pov.py
===================================================================
--- trunk/blender/release/scripts/io/engine_render_pov.py	2010-06-11 13:00:24 UTC (rev 29406)
+++ trunk/blender/release/scripts/io/engine_render_pov.py	2010-06-11 13:45:58 UTC (rev 29407)
@@ -762,12 +762,22 @@
 
         if 1:
             # TODO, when povray isnt found this gives a cryptic error, would be nice to be able to detect if it exists
-            self._process = subprocess.Popen([pov_binary, self._temp_file_ini]) # stdout=subprocess.PIPE, stderr=subprocess.PIPE
+            try:
+                self._process = subprocess.Popen([pov_binary, self._temp_file_ini]) # stdout=subprocess.PIPE, stderr=subprocess.PIPE
+            except OSError:
+                # TODO, report api
+                print("POVRAY: could not execute povray, possibly povray isn't installed: '%s'" % pov_binary)
+                import traceback
+                traceback.print_exc()
+                print ("***-DONE-***")
+                return False
+
         else:
             # This works too but means we have to wait until its done
             os.system('%s %s' % (pov_binary, self._temp_file_ini))
 
         print ("***-DONE-***")
+        return True
 
     def _cleanup(self):
         for f in (self._temp_file_in, self._temp_file_ini, self._temp_file_out):
@@ -783,8 +793,11 @@
         self.update_stats("", "POVRAY: Exporting data from Blender")
         self._export(scene)
         self.update_stats("", "POVRAY: Parsing File")
-        self._render()
 
+        if not self._render():
+            self.update_stats("", "POVRAY: Not found")
+            return
+
         r = scene.render
 
         # compute resolution





More information about the Bf-blender-cvs mailing list