py2exe is not able to handle win32com.shell
authorVolker Kleinfeld <Volker.Kleinfeld@gmx.de>
Mon, 24 Oct 2005 14:52:41 -0700
changeset 1422 a7e8408ac79c
parent 1421 a7631cf1326a
child 1423 76239f0cb0dc
py2exe is not able to handle win32com.shell Changes: - setup.py: help py2exe finding the shell module in win32com.shell
setup.py
--- a/setup.py	Mon Oct 24 14:52:30 2005 -0700
+++ b/setup.py	Mon Oct 24 14:52:41 2005 -0700
@@ -6,6 +6,7 @@
 # './setup.py --help' for more options
 
 import glob
+import sys
 from distutils.core import setup, Extension
 from distutils.command.install_data import install_data
 
@@ -15,6 +16,20 @@
 try:
     import py2exe
 
+    # Help py2exe to find win32com.shell
+    try:
+        import modulefinder
+        import win32com
+        for p in win32com.__path__[1:]: # Take the path to win32comext
+            modulefinder.AddPackagePath("win32com", p)
+        pn = "win32com.shell"
+        __import__(pn)
+        m = sys.modules[pn]
+        for p in m.__path__[1:]:
+            modulefinder.AddPackagePath(pn, p)
+    except ImportError:
+        pass
+
     # Due to the use of demandload py2exe is not finding the modules.
     # packagescan.getmodules creates a list of modules included in
     # the mercurial package plus depdent modules.