758 try: |
758 try: |
759 # Install the files |
759 # Install the files |
760 # make the install directories |
760 # make the install directories |
761 for key in cfg: |
761 for key in cfg: |
762 if cfg[key] and not os.path.isdir(cfg[key]): |
762 if cfg[key] and not os.path.isdir(cfg[key]): |
763 os.makedirs(cfg[key]) |
763 try: |
|
764 os.makedirs(cfg[key]) |
|
765 except OSError: |
|
766 if key != "apidir": |
|
767 raise |
764 |
768 |
765 # copy the eric config file |
769 # copy the eric config file |
766 if distDir: |
770 if distDir: |
767 shutilCopy(configName, cfg["mdir"]) |
771 shutilCopy(configName, cfg["mdir"]) |
768 if os.path.exists(configName + "c"): |
772 if os.path.exists(configName + "c"): |
1601 if not isSudo and isPipOutdated(): |
1605 if not isSudo and isPipOutdated(): |
1602 updatePip() |
1606 updatePip() |
1603 print("\n") |
1607 print("\n") |
1604 |
1608 |
1605 # perform dependency checks |
1609 # perform dependency checks |
1606 if sys.version_info < (3, 8, 0) or sys.version_info >= (3, 14, 0): |
1610 if sys.version_info < (3, 9, 0) or sys.version_info >= (3, 14, 0): |
1607 print("Sorry, you must have Python 3.8.0 or higher, but less 3.14.0.") |
1611 print("Sorry, you must have Python 3.9.0 or higher, but less 3.14.0.") |
1608 print("Yours is {0}.".format(".".join(str(v) for v in sys.version_info[:3]))) |
1612 print("Yours is {0}.".format(".".join(str(v) for v in sys.version_info[:3]))) |
1609 exit(5) |
1613 exit(5) |
1610 |
1614 |
1611 if ( |
1615 if ( |
1612 importlib.util.find_spec("xml") is None |
1616 importlib.util.find_spec("xml") is None |
1729 "chardet": ("chardet", ""), |
1733 "chardet": ("chardet", ""), |
1730 "pyenchant": ("enchant", ""), |
1734 "pyenchant": ("enchant", ""), |
1731 "wheel": ("wheel", ""), |
1735 "wheel": ("wheel", ""), |
1732 "esprima": ("esprima", ""), |
1736 "esprima": ("esprima", ""), |
1733 "fido2": ("fido2", ""), |
1737 "fido2": ("fido2", ""), |
|
1738 "pyusb": ("usb", ">=1.2.0"), |
1734 } |
1739 } |
1735 if withPyqt6Tools: |
1740 if withPyqt6Tools: |
1736 optionalModulesList["qt6-applications"] = ("qt6_applications", "") |
1741 optionalModulesList["qt6-applications"] = ("qt6_applications", "") |
1737 optionalWinModulesList = { |
1742 optionalWinModulesList = { |
1738 # key is pip project name |
1743 # key is pip project name |
2241 global installApis, doCleanDesktopLinks, yes2All, proxy |
2246 global installApis, doCleanDesktopLinks, yes2All, proxy |
2242 global createInstallInfoFile, installCwd |
2247 global createInstallInfoFile, installCwd |
2243 global withPyqt6Tools |
2248 global withPyqt6Tools |
2244 global verbose |
2249 global verbose |
2245 |
2250 |
2246 if sys.version_info < (3, 8, 0) or sys.version_info > (3, 99, 99): |
2251 if sys.version_info < (3, 9, 0) or sys.version_info > (3, 99, 99): |
2247 print("Sorry, eric requires at least Python 3.8 for running.") |
2252 print("Sorry, eric requires at least Python 3.9 for running.") |
2248 exit(5) |
2253 exit(5) |
2249 |
2254 |
2250 installCwd = os.getcwd() |
2255 installCwd = os.getcwd() |
2251 |
2256 |
2252 if os.path.dirname(argv[0]): |
2257 if os.path.dirname(argv[0]): |