forked from LeenkxTeam/LNXSDK
		
	
		
			
	
	
		
			82 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			82 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
|  | import bpy, math, os, platform, subprocess, sys, re, shutil | ||
|  | 
 | ||
|  | def ShowMessageBox(message = "", title = "Message Box", icon = 'INFO'): | ||
|  | 
 | ||
|  |     def draw(self, context): | ||
|  |         self.layout.label(text=message) | ||
|  | 
 | ||
|  |     bpy.context.window_manager.popup_menu(draw, title = title, icon = icon) | ||
|  | 
 | ||
|  | class TLM_Install_OpenCV(bpy.types.Operator): | ||
|  |     """Install OpenCV""" | ||
|  |     bl_idname = "tlm.install_opencv_lightmaps" | ||
|  |     bl_label = "Install OpenCV" | ||
|  |     bl_description = "Install OpenCV" | ||
|  |     bl_options = {'REGISTER', 'UNDO'} | ||
|  | 
 | ||
|  |     def execute(self, context): | ||
|  | 
 | ||
|  |         scene = context.scene | ||
|  |         cycles = bpy.data.scenes[scene.name].cycles | ||
|  | 
 | ||
|  |         print("Module OpenCV") | ||
|  | 
 | ||
|  |         if (2, 91, 0) > bpy.app.version: | ||
|  |             pythonbinpath = bpy.app.binary_path_python | ||
|  |         else: | ||
|  |             pythonbinpath = sys.executable | ||
|  | 
 | ||
|  |         if platform.system() == "Windows": | ||
|  |             pythonlibpath = os.path.join(os.path.dirname(os.path.dirname(pythonbinpath)), "lib") | ||
|  |         else: | ||
|  |             pythonlibpath = os.path.join(os.path.dirname(os.path.dirname(pythonbinpath)), "lib", os.path.basename(pythonbinpath)) | ||
|  | 
 | ||
|  |         ensurepippath = os.path.join(pythonlibpath, "ensurepip") | ||
|  | 
 | ||
|  |         cmda = [pythonbinpath, ensurepippath, "--upgrade", "--user"] | ||
|  |         pip = subprocess.run(cmda) | ||
|  |         cmdc = [pythonbinpath, "-m", "pip", "install", "--upgrade", "pip"] | ||
|  |         pipc = subprocess.run(cmdc) | ||
|  | 
 | ||
|  |         if pip.returncode == 0: | ||
|  |             print("Sucessfully installed pip!\n") | ||
|  |         else: | ||
|  | 
 | ||
|  |             try: | ||
|  |                 import pip | ||
|  |                 module_pip = True | ||
|  |             except ImportError: | ||
|  |                 #pip  | ||
|  |                 module_pip = False | ||
|  | 
 | ||
|  |             if not module_pip: | ||
|  |                 print("Failed to install pip!\n") | ||
|  |                 if platform.system() == "Windows": | ||
|  |                     ShowMessageBox("Failed to install pip - Please start Blender as administrator", "Restart", 'PREFERENCES') | ||
|  |                 else: | ||
|  |                     ShowMessageBox("Failed to install pip - Try starting Blender with SUDO", "Restart", 'PREFERENCES') | ||
|  |                 return{'FINISHED'} | ||
|  | 
 | ||
|  |         cmdb = [pythonbinpath, "-m", "pip", "install", "opencv-python"] | ||
|  |          | ||
|  |         #opencv = subprocess.run(cmdb, stdout=subprocess.PIPE, stderr=subprocess.PIPE) | ||
|  |         opencv = subprocess.run(cmdb) | ||
|  | 
 | ||
|  |         if opencv.returncode == 0: | ||
|  |             print("Successfully installed OpenCV!\n") | ||
|  |         else: | ||
|  |             print("Failed to install OpenCV!\n") | ||
|  | 
 | ||
|  |             if platform.system() == "Windows": | ||
|  |                 ShowMessageBox("Failed to install opencv - Please start Blender as administrator", "Restart", 'PREFERENCES') | ||
|  |             else: | ||
|  |                 ShowMessageBox("Failed to install opencv - Try starting Blender with SUDO", "Restart", 'PREFERENCES') | ||
|  | 
 | ||
|  |             return{'FINISHED'} | ||
|  | 
 | ||
|  |         module_opencv = True | ||
|  |         print("Sucessfully installed OpenCV!\n") | ||
|  |         ShowMessageBox("Please restart blender to enable OpenCV filtering", "Restart", 'PREFERENCES') | ||
|  | 
 | ||
|  |         return{'FINISHED'} |