[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [20071] trunk/blender/release/scripts: [ #18695] Replace python errors with useful messages when no full python installation is found

Campbell Barton ideasman42 at gmail.com
Tue May 5 23:51:56 CEST 2009


Revision: 20071
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=20071
Author:   campbellbarton
Date:     2009-05-05 23:51:54 +0200 (Tue, 05 May 2009)

Log Message:
-----------
[#18695] Replace python errors with useful messages when no full python installation is found
from Philipp Oeser (lichtwerk)

Modified Paths:
--------------
    trunk/blender/release/scripts/3ds_export.py
    trunk/blender/release/scripts/DirectX8Exporter.py
    trunk/blender/release/scripts/add_mesh_torus.py
    trunk/blender/release/scripts/export_dxf.py
    trunk/blender/release/scripts/export_fbx.py
    trunk/blender/release/scripts/help_bpy_api.py
    trunk/blender/release/scripts/help_getting_started.py
    trunk/blender/release/scripts/help_manual.py
    trunk/blender/release/scripts/help_release_notes.py
    trunk/blender/release/scripts/help_tutorials.py
    trunk/blender/release/scripts/help_web_blender.py
    trunk/blender/release/scripts/help_web_devcomm.py
    trunk/blender/release/scripts/help_web_eshop.py
    trunk/blender/release/scripts/help_web_usercomm.py
    trunk/blender/release/scripts/lightwave_export.py

Modified: trunk/blender/release/scripts/3ds_export.py
===================================================================
--- trunk/blender/release/scripts/3ds_export.py	2009-05-05 21:47:58 UTC (rev 20070)
+++ trunk/blender/release/scripts/3ds_export.py	2009-05-05 21:51:54 UTC (rev 20071)
@@ -7,7 +7,7 @@
 Tooltip: 'Export to 3DS file format (.3ds).'
 """
 
-__author__ = ["Campbell Barton", "Bob Holcomb", "Richard L\xE4rk\xE4ng", "Damien McGinnes", "Mark Stijnman"]
+__author__ = ["Campbell Barton", "Bob Holcomb", "Richard Lärkäng", "Damien McGinnes", "Mark Stijnman"]
 __url__ = ("blenderartists.org", "www.blender.org", "www.gametutorials.com", "lib3ds.sourceforge.net/")
 __version__ = "0.90a"
 __bpydoc__ = """\
@@ -50,7 +50,10 @@
 import bpy
 from BPyMesh import getMeshFromObject
 from BPyObject import getDerivedObjects
-import struct
+try: 
+    import struct
+except: 
+    struct = None
 
 # So 3ds max can open files, limit names to 12 in length
 # this is verry annoying for filenames!
@@ -1009,5 +1012,8 @@
 
 
 if __name__=='__main__':
-	Blender.Window.FileSelector(save_3ds, "Export 3DS", Blender.sys.makename(ext='.3ds'))
+    if struct:
+        Blender.Window.FileSelector(save_3ds, "Export 3DS", Blender.sys.makename(ext='.3ds'))
+    else:
+        Blender.Draw.PupMenu("Error%t|This script requires a full python installation")
 # save_3ds('/test_b.3ds')

Modified: trunk/blender/release/scripts/DirectX8Exporter.py
===================================================================
--- trunk/blender/release/scripts/DirectX8Exporter.py	2009-05-05 21:47:58 UTC (rev 20070)
+++ trunk/blender/release/scripts/DirectX8Exporter.py	2009-05-05 21:51:54 UTC (rev 20071)
@@ -45,7 +45,8 @@
 from Blender.Mathutils import *
 from Blender import Draw, BGL
 from Blender.BGL import *
-import math
+try: import math
+except: math = None
 
 global mat_flip,index_list,space,bone_list,mat_dict
 global anim,flip_norm,swap_zy,flip_z,speed,ticks,no_light,recalc_norm,Bl_norm

Modified: trunk/blender/release/scripts/add_mesh_torus.py
===================================================================
--- trunk/blender/release/scripts/add_mesh_torus.py	2009-05-05 21:47:58 UTC (rev 20070)
+++ trunk/blender/release/scripts/add_mesh_torus.py	2009-05-05 21:51:54 UTC (rev 20071)
@@ -6,7 +6,8 @@
 """
 import BPyAddMesh
 import Blender
-from math import cos, sin, pi
+try: from math import cos, sin, pi
+except: math = None
 
 def add_torus(PREF_MAJOR_RAD, PREF_MINOR_RAD, PREF_MAJOR_SEG, PREF_MINOR_SEG):
 	Vector = Blender.Mathutils.Vector
@@ -61,5 +62,8 @@
 	
 	BPyAddMesh.add_mesh_simple('Torus', verts, [], faces)
 
-main()
+if math:
+    main()
+else:
+    Blender.Draw.PupMenu("Error%t|This script requires a full python installation")
 

Modified: trunk/blender/release/scripts/export_dxf.py
===================================================================
--- trunk/blender/release/scripts/export_dxf.py	2009-05-05 21:47:58 UTC (rev 20070)
+++ trunk/blender/release/scripts/export_dxf.py	2009-05-05 21:51:54 UTC (rev 20071)
@@ -94,40 +94,43 @@
 import Blender
 from Blender import Mathutils, Window, Scene, sys, Draw, Mesh
 import BPyMessages
-import os
-import subprocess
+try: import os
+except: os = None
+try: import subprocess
+except: subprocess = None
+try: import copy
+except: copy = None
 
 #print os.sys.platform
 #print dir(os.sys.version)
 
 #import dxfLibrary
 #reload(dxfLibrary)
-from  dxfLibrary import *
+if copy and os:
+    from  dxfLibrary import *
+    #-------- DWG support ------------------------------------------
+    extCONV_OK = True
+    extCONV = 'DConvertCon.exe'
+    extCONV_PATH = os.path.join(Blender.Get('scriptsdir'),extCONV)
+    if not os.path.isfile(extCONV_PATH):
+        extCONV_OK = False
+        extCONV_TEXT = 'DWG-Exporter: Abort, nothing done!|\
+    Copy first %s into Blender script directory.|\
+    More details in online Help.' %extCONV
+    else:
+        if not os.sys.platform.startswith('win'):
+            # check if Wine installed:   
+            if subprocess.Popen(('which', 'winepath'), stdout=subprocess.PIPE).stdout.read().strip():
+                extCONV_PATH    = 'wine %s'%extCONV_PATH
+            else: 
+                extCONV_OK = False
+                extCONV_TEXT = 'DWG-Exporter: Abort, nothing done!|\
+    The external DWG-converter (%s) needs Wine installed on your system.|\
+    More details in online Help.' %extCONV
+    #print 'extCONV_PATH = ', extCONV_PATH
 
 
-#-------- DWG support ------------------------------------------
-extCONV_OK = True
-extCONV = 'DConvertCon.exe'
-extCONV_PATH = os.path.join(Blender.Get('scriptsdir'),extCONV)
-if not os.path.isfile(extCONV_PATH):
-	extCONV_OK = False
-	extCONV_TEXT = 'DWG-Exporter: Abort, nothing done!|\
-Copy first %s into Blender script directory.|\
-More details in online Help.' %extCONV
-else:
-	if not os.sys.platform.startswith('win'):
-		# check if Wine installed:   
-		if subprocess.Popen(('which', 'winepath'), stdout=subprocess.PIPE).stdout.read().strip():
-			extCONV_PATH    = 'wine %s'%extCONV_PATH
-		else: 
-			extCONV_OK = False
-			extCONV_TEXT = 'DWG-Exporter: Abort, nothing done!|\
-The external DWG-converter (%s) needs Wine installed on your system.|\
-More details in online Help.' %extCONV
-#print 'extCONV_PATH = ', extCONV_PATH
 
-
-
 #-----------------------------------------------------
 def dupTest(object):
 	"""
@@ -526,7 +529,8 @@
 
 #-----------------------------------------------------
 if __name__=='__main__':
-	#main()
-	if not copy:
-		Draw.PupMenu('Error%t|This script requires a full python install')
-	else: Window.FileSelector(dxf_export_ui, 'EXPORT DXF', sys.makename(ext='.dxf'))
\ No newline at end of file
+    #main()
+    if copy and os and subprocess:
+        Window.FileSelector(dxf_export_ui, 'EXPORT DXF', sys.makename(ext='.dxf'))
+    else:
+        Draw.PupMenu('Error%t|This script requires a full python install')

Modified: trunk/blender/release/scripts/export_fbx.py
===================================================================
--- trunk/blender/release/scripts/export_fbx.py	2009-05-05 21:47:58 UTC (rev 20070)
+++ trunk/blender/release/scripts/export_fbx.py	2009-05-05 21:51:54 UTC (rev 20071)
@@ -2729,15 +2729,16 @@
 	GLOBALS['EVENT'] = e
 
 def do_help(e,v):
-	url = 'http://wiki.blender.org/index.php/Scripts/Manual/Export/autodesk_fbx'
-	print 'Trying to open web browser with documentation at this address...'
-	print '\t' + url
-	
-	try:
-		import webbrowser
-		webbrowser.open(url)
-	except:
-		print '...could not open a browser window.'
+    url = 'http://wiki.blender.org/index.php/Scripts/Manual/Export/autodesk_fbx'
+    print 'Trying to open web browser with documentation at this address...'
+    print '\t' + url
+    
+    try:
+        import webbrowser
+        webbrowser.open(url)
+    except:
+        Blender.Draw.PupMenu("Error%t|Opening a webbrowser requires a full python installation")
+        print '...could not open a browser window.'
 
 	
 

Modified: trunk/blender/release/scripts/help_bpy_api.py
===================================================================
--- trunk/blender/release/scripts/help_bpy_api.py	2009-05-05 21:47:58 UTC (rev 20070)
+++ trunk/blender/release/scripts/help_bpy_api.py	2009-05-05 21:51:54 UTC (rev 20071)
@@ -36,6 +36,12 @@
 # ***** END GPL LICENCE BLOCK *****
 # --------------------------------------------------------------------------
 
-import Blender, webbrowser
-version = str(int(Blender.Get('version')))
-webbrowser.open('http://www.blender.org/documentation/'+ version +'PythonDoc/')
+import Blender
+try: import webbrowser
+except: webbrowser = None
+
+if webbrowser:
+    version = str(int(Blender.Get('version')))
+    webbrowser.open('http://www.blender.org/documentation/'+ version +'PythonDoc/')
+else:
+    Blender.Draw.PupMenu("Error%t|This script requires a full python installation")

Modified: trunk/blender/release/scripts/help_getting_started.py
===================================================================
--- trunk/blender/release/scripts/help_getting_started.py	2009-05-05 21:47:58 UTC (rev 20070)
+++ trunk/blender/release/scripts/help_getting_started.py	2009-05-05 21:51:54 UTC (rev 20071)
@@ -38,5 +38,13 @@
 # ***** END GPL LICENCE BLOCK *****
 # --------------------------------------------------------------------------
 
-import Blender, webbrowser
-webbrowser.open('http://www.blender.org/education-help/tutorials/getting-started/')
+import Blender
+try: import webbrowser
+except: webbrowser = None
+
+if webbrowser:
+    webbrowser.open('http://www.blender.org/education-help/tutorials/getting-started/')
+else:
+    Blender.Draw.PupMenu("Error%t|This script requires a full python installation")
+
+

Modified: trunk/blender/release/scripts/help_manual.py
===================================================================
--- trunk/blender/release/scripts/help_manual.py	2009-05-05 21:47:58 UTC (rev 20070)
+++ trunk/blender/release/scripts/help_manual.py	2009-05-05 21:51:54 UTC (rev 20071)
@@ -36,5 +36,13 @@
 # ***** END GPL LICENCE BLOCK *****
 # --------------------------------------------------------------------------
 
-import Blender, webbrowser
-webbrowser.open('http://wiki.blender.org/index.php/Manual')
+import Blender
+try: import webbrowser
+except: webbrowser = None
+
+if webbrowser:
+    webbrowser.open('http://wiki.blender.org/index.php/Manual')
+else:
+    Blender.Draw.PupMenu("Error%t|This script requires a full python installation")
+
+

Modified: trunk/blender/release/scripts/help_release_notes.py
===================================================================
--- trunk/blender/release/scripts/help_release_notes.py	2009-05-05 21:47:58 UTC (rev 20070)
+++ trunk/blender/release/scripts/help_release_notes.py	2009-05-05 21:51:54 UTC (rev 20071)
@@ -36,6 +36,12 @@
 # ***** END GPL LICENCE BLOCK *****
 # --------------------------------------------------------------------------
 
-import Blender, webbrowser
+import Blender
+try: import webbrowser
+except: webbrowser = None
 
-webbrowser.open('http://www.blender.org/development/release-logs/')
+if webbrowser:
+    webbrowser.open('http://www.blender.org/development/release-logs/')
+else:
+    Blender.Draw.PupMenu("Error%t|This script requires a full python installation")
+

Modified: trunk/blender/release/scripts/help_tutorials.py
===================================================================

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list