Added a custom fix for Libloader with changes made by @jmdaweb #273

This commit is contained in:
Manuel Cortez 2018-11-22 17:48:22 -06:00
parent c8d83ed9e7
commit e5b33160e0
2 changed files with 38 additions and 0 deletions

View File

@ -3,6 +3,7 @@
from __future__ import absolute_import from __future__ import absolute_import
import sys import sys
from . import fix_arrow # A few new locales for Three languages in arrow. from . import fix_arrow # A few new locales for Three languages in arrow.
from . import fix_libloader # Regenerates comcache properly.
from . import fix_urllib3_warnings # Avoiding some SSL warnings related to Twython. from . import fix_urllib3_warnings # Avoiding some SSL warnings related to Twython.
from . import fix_win32com from . import fix_win32com
from . import fix_requests #fix cacert.pem location for TWBlue binary copies from . import fix_requests #fix cacert.pem location for TWBlue binary copies
@ -11,6 +12,7 @@ def setup():
if hasattr(sys, "frozen"): if hasattr(sys, "frozen"):
fix_win32com.fix() fix_win32com.fix()
fix_requests.fix(True) fix_requests.fix(True)
fix_libloader.fix()
else: else:
fix_requests.fix(False) fix_requests.fix(False)
fix_urllib3_warnings.fix() fix_urllib3_warnings.fix()

View File

@ -0,0 +1,36 @@
# -*- coding: utf-8 -*-
import win32com
import paths
win32com.__gen_path__=paths.com_path()
import sys
import os
sys.path.append(os.path.join(win32com.__gen_path__, "."))
from win32com.client import gencache
from pywintypes import com_error
from libloader import com
fixed=False
def patched_getmodule(modname):
mod=__import__(modname)
return sys.modules[modname]
def load_com(*names):
global fixed
if fixed==False:
gencache._GetModule=patched_getmodule
com.prepare_gencache()
fixed=True
result = None
for name in names:
try:
result = gencache.EnsureDispatch(name)
break
except com_error:
continue
if result is None:
raise com_error("Unable to load any of the provided com objects.")
return result
def fix():
com.load_com = load_com