scripts/install.py

branch
eric7
changeset 10868
ca5cd7faaf5e
parent 10864
8917b1a45546
child 10873
4e8e63df7893
child 10886
e46fcabe7a3f
diff -r 75160699ac5a -r ca5cd7faaf5e scripts/install.py
--- a/scripts/install.py	Sat Jul 27 12:03:50 2024 +0200
+++ b/scripts/install.py	Sat Jul 27 14:22:24 2024 +0200
@@ -12,6 +12,7 @@
 import argparse
 import compileall
 import contextlib
+import copy
 import datetime
 import fnmatch
 import getpass
@@ -1740,6 +1741,12 @@
     }
     if withPyqt6Tools:
         optionalModulesList["qt6-applications"] = ("qt6_applications", "")
+    optionalWinModulesList = {
+        # key is pip project name
+        # value is tuple of package name, pip install constraint
+        "pywin32": ("win32com", ">=1.0"),
+        "command-runner": ("command_runner", ""),
+    }
 
     # check mandatory PyQt6 modules
     modulesOK = True
@@ -1786,9 +1793,12 @@
     print("\nOptional Packages")
     print("-----------------")
     optionalMissing = False
-    for optPackage in sorted(optionalModulesList):
+    optModulesDict = copy.deepcopy(optionalModulesList)
+    if sys.platform.startswith(("win", "cygwin")):
+        optModulesDict.update(optionalWinModulesList)
+    for optPackage in sorted(optModulesDict):
         try:
-            importlib.import_module(optionalModulesList[optPackage][0])
+            importlib.import_module(optModulesDict[optPackage][0])
             print("Found", optPackage)
         except ImportError as err:
             if isSudo:
@@ -1798,7 +1808,7 @@
                 msg = "Optional '{0}' could not be detected.{1}".format(
                     optPackage, "\nError: {0}".format(err) if verbose else ""
                 )
-                pipInstall(optPackage + optionalModulesList[optPackage][1], msg)
+                pipInstall(optPackage + optModulesDict[optPackage][1], msg)
     if optionalMissing:
         print("Some optional packages are missing and could not be installed.")
         print("Install them manually with:")

eric ide

mercurial