From a69d40add8b1f7468fb725f4a4909ec6884991a9 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Tue, 27 Oct 2020 17:05:14 +0100 Subject: [PATCH] tvpaint's prelaunch hook install pywin32 on windows --- pype/hooks/tvpaint/prelaunch.py | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/pype/hooks/tvpaint/prelaunch.py b/pype/hooks/tvpaint/prelaunch.py index d616949254..0b3899f555 100644 --- a/pype/hooks/tvpaint/prelaunch.py +++ b/pype/hooks/tvpaint/prelaunch.py @@ -1,15 +1,13 @@ import os import shutil -from pype.lib import PypeHook -from pype.api import ( - Anatomy, - Logger -) +import platform +import pype.lib +from pype.api import Anatomy, Logger import getpass import avalon.api -class TvpaintPrelaunchHook(PypeHook): +class TvpaintPrelaunchHook(pype.lib.PypeHook): """ Workfile preparation hook """ @@ -23,10 +21,22 @@ class TvpaintPrelaunchHook(PypeHook): self.signature = "( {} )".format(self.__class__.__name__) + def install_pywin(self): + if platform.system().lower() != "windows": + return + + try: + from win32com.shell import shell + except Exception: + output = pype.lib._subprocess(["pip", "install", "pywin32==227"]) + self.log.info(output) + def execute(self, *args, env: dict = None) -> bool: if not env: env = os.environ + self.install_pywin() + # get context variables project_name = env["AVALON_PROJECT"] asset_name = env["AVALON_ASSET"]