[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [17402] trunk/blender/release/scripts/ image_edit.py: attempt to make executing an external command work with python 2.4 & 2.5, it seems that only py 2.6 wanted list args for subprocess.Popen

Campbell Barton ideasman42 at gmail.com
Tue Nov 11 09:21:09 CET 2008


Revision: 17402
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=17402
Author:   campbellbarton
Date:     2008-11-11 09:21:09 +0100 (Tue, 11 Nov 2008)

Log Message:
-----------
attempt to make executing an external command work with python 2.4 & 2.5, it seems that only py 2.6 wanted list args for subprocess.Popen

Modified Paths:
--------------
    trunk/blender/release/scripts/image_edit.py

Modified: trunk/blender/release/scripts/image_edit.py
===================================================================
--- trunk/blender/release/scripts/image_edit.py	2008-11-11 05:03:03 UTC (rev 17401)
+++ trunk/blender/release/scripts/image_edit.py	2008-11-11 08:21:09 UTC (rev 17402)
@@ -60,6 +60,26 @@
 	Draw.PupMenu('Error: Recent version of Python not installed.')
 	subprocess=None
 
+def os_run(appstring, filename):
+	'''
+	Run the app, take into account different python versions etc
+	looks like python 2.6 wants a list for 
+	'''
+	
+	# evil trick, temp replace spaces so we can allow spaces in filenames
+	# also allows multiple instances of %f
+	appstring = appstring.replace(' ', '\t')
+	appstring = appstring.replace('%f', filename)
+	appstring = appstring.split('\t')
+	
+	print ' '.join(appstring)
+	
+	try: # only python 2.6 wants a list?
+		p = subprocess.Popen(appstring)
+	except:
+		p = subprocess.Popen(' '.join(appstring))
+	
+
 def edit_extern(image=None):
 	
 	if not image:
@@ -101,7 +121,7 @@
 		elif platform == 'darwin':
 			appstring = 'open "%f"'
 		else:
-			appstring = 'gimp-remote "%f"'
+			appstring = 'gimp %f'
 	
 	appstring_but = Draw.Create(appstring)
 	save_default_but = Draw.Create(0)
@@ -126,15 +146,10 @@
 	
 	# -------------------------------
 	
-	# evil trick, temp replace spaces so we can allow spaces in filenames
-	appstring = appstring.replace(' ', '\t')
-	
-	appstring = appstring.replace('%f', imageFileName)
-	appstring = appstring.split('\t')
-	print 'Editing image with command "%s"' % appstring
-	p = subprocess.Popen(appstring)
+	os_run(appstring, imageFileName)
 
 
+
 def main():
 	edit_extern()
 	





More information about the Bf-blender-cvs mailing list