[Bf-extensions-cvs] [1547074] master: Netrender: enable scripts, drivers

Campbell Barton noreply at git.blender.org
Mon Jun 30 08:09:58 CEST 2014


Commit: 154707492df2629faf65052ad22f77e9dc47d82b
Author: Campbell Barton
Date:   Mon Jun 30 16:08:08 2014 +1000
https://developer.blender.org/rBA154707492df2629faf65052ad22f77e9dc47d82b

Netrender: enable scripts, drivers

===================================================================

M	netrender/baking.py
M	netrender/repath.py
M	netrender/slave.py
M	netrender/thumbnail.py
M	netrender/utils.py

===================================================================

diff --git a/netrender/baking.py b/netrender/baking.py
index 24d32e8..f3a759a 100644
--- a/netrender/baking.py
+++ b/netrender/baking.py
@@ -21,7 +21,6 @@ import sys, subprocess, re
 
 from netrender.utils import *
 
-BLENDER_PATH = sys.argv[0]
 
 def commandToTask(command):
     i = command.index("|")
@@ -38,9 +37,19 @@ def bake(job, tasks):
     task_commands = []
     for task in tasks:
         task_commands.extend(task)
-    
-    process = subprocess.Popen([BLENDER_PATH, "-b", "-noaudio", job_full_path, "-P", __file__, "--"] + task_commands, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
-    
+
+    process = subprocess.Popen(
+        [bpy.app.binary_path,
+         "-b",
+         "-y",
+         "-noaudio",
+         job_full_path,
+         "-P", __file__,
+         "--",
+         ] + task_commands,
+        stdout=subprocess.PIPE, stderr=subprocess.STDOUT,
+        )
+
     return process
 
 result_pattern = re.compile("BAKE FILE\[ ([0-9]+) \]: (.*)")
diff --git a/netrender/repath.py b/netrender/repath.py
index e06b17c..e39929b 100644
--- a/netrender/repath.py
+++ b/netrender/repath.py
@@ -25,7 +25,6 @@ DEBUG = False
 
 from netrender.utils import *
 
-BLENDER_PATH = sys.argv[0]
 
 def reset(job):
     main_file = job.files[0]
@@ -60,8 +59,21 @@ def update(job):
             paths.append(rfile.filepath)
     
     # Only update if needed
-    if paths:        
-        process = subprocess.Popen([BLENDER_PATH, "-b", "-noaudio", job_full_path, "-P", __file__, "--", new_path, original_path] + paths, stdout=sys.stdout, stderr=subprocess.STDOUT)
+    if paths:
+        process = subprocess.Popen(
+            [bpy.app.binary_path,
+             "-b",
+             "-y",
+             "-noaudio",
+             job_full_path,
+             "-P", __file__,
+             "--",
+             new_path,
+             original_path,
+             ] + paths,
+            stdout=sys.stdout,
+            stderr=subprocess.STDOUT,
+            )
         process.wait()
         
         os.renames(job_full_path, job_full_path + ".bak")
diff --git a/netrender/slave.py b/netrender/slave.py
index bf3819b..40b62dd 100644
--- a/netrender/slave.py
+++ b/netrender/slave.py
@@ -29,7 +29,6 @@ import netrender.repath
 import netrender.baking
 import netrender.thumbnail as thumbnail
 
-BLENDER_PATH = sys.argv[0]
 
 CANCEL_POLL_SPEED = 2
 MAX_TIMEOUT = 10
@@ -225,7 +224,20 @@ def render_slave(engine, netsettings, threads):
                         frame_args += ["-f", str(frame.number)]
 
                     with NoErrorDialogContext():
-                        process = subprocess.Popen([BLENDER_PATH, "-b", "-noaudio", job_full_path, "-t", str(threads), "-o", os.path.join(job_prefix, "######"), "-E", job.render, "-F", "MULTILAYER"] + frame_args, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
+                        process = subprocess.Popen(
+                            [bpy.app.binary_path,
+                             "-b",
+                             "-y",
+                             "-noaudio",
+                             job_full_path,
+                             "-t", str(threads),
+                             "-o", os.path.join(job_prefix, "######"),
+                             "-E", job.render,
+                             "-F", "MULTILAYER",
+                             ] + frame_args,
+                            stdout=subprocess.PIPE,
+                            stderr=subprocess.STDOUT,
+                            )
                         
                 elif job.subtype == netrender.model.JOB_SUB_BAKING:
                     tasks = []
diff --git a/netrender/thumbnail.py b/netrender/thumbnail.py
index 8ac0579..4408599 100644
--- a/netrender/thumbnail.py
+++ b/netrender/thumbnail.py
@@ -23,7 +23,18 @@ import bpy
 
 def generate(filename, external=True):
     if external:
-        process = subprocess.Popen([sys.argv[0],"-b", "-noaudio", "-P", __file__, "--", filename], stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
+        process = subprocess.Popen(
+            [bpy.app.binary_path,
+             "-b",
+             "-y",
+             "-noaudio",
+             "-P", __file__,
+             "--",
+             filename,
+             ],
+            stdout=subprocess.PIPE,
+            stderr=subprocess.STDOUT,
+            )
         while process.poll() is None:
             process.stdout.read(1024) # empty buffer to be sure
         process.stdout.read()
diff --git a/netrender/utils.py b/netrender/utils.py
index df3f00e..a9c0cde 100644
--- a/netrender/utils.py
+++ b/netrender/utils.py
@@ -359,7 +359,25 @@ def getResults(server_address, server_port, job_id, resolution_x, resolution_y,
     filepath = os.path.join(bpy.app.tempdir, "netrender_temp.blend")
     bpy.ops.wm.save_as_mainfile(filepath=filepath, copy=True, check_existing=False)
 
-    arguments = [sys.argv[0], "-b", "-noaudio", filepath, "-o", bpy.path.abspath(bpy.context.scene.render.filepath), "-P", __file__] + frame_arguments + ["--", "GetResults", server_address, str(server_port), job_id, str(resolution_x), str(resolution_y), str(resolution_percentage)]
+    arguments = (
+        [bpy.app.binary_path,
+         "-b",
+         "-y",
+         "-noaudio",
+         filepath,
+         "-o", bpy.path.abspath(bpy.context.scene.render.filepath),
+         "-P", __file__,
+         ] + frame_arguments +
+        ["--",
+         "GetResults",
+         server_address,
+         str(server_port),
+         job_id,
+         str(resolution_x),
+         str(resolution_y),
+         str(resolution_percentage),
+         ]
+        )
     if bpy.app.debug:
         print("Starting subprocess:")
         print(" ".join(arguments))
@@ -402,7 +420,19 @@ def _getResults(server_address, server_port, job_id, resolution_x, resolution_y,
     
 
 def getFileInfo(filepath, infos):
-    process = subprocess.Popen([sys.argv[0], "-b", "-noaudio", filepath, "-P", __file__, "--", "FileInfo"] + infos, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
+    process = subprocess.Popen(
+        [bpy.app.binary_path,
+         "-b",
+         "-y",
+         "-noaudio",
+         filepath,
+         "-P", __file__,
+         "--",
+         "FileInfo",
+         ] + infos,
+        stdout=subprocess.PIPE,
+        stderr=subprocess.STDOUT,
+        )
     stdout = bytes()
     while process.poll() is None:
         stdout += process.stdout.read(1024)



More information about the Bf-extensions-cvs mailing list