scripts/install-dependencies.py

branch
eric7
changeset 10801
5859861e7a1f
parent 10679
4d3e0ce54322
child 10828
fc1310995b98
equal deleted inserted replaced
10800:c6ce5522be30 10801:5859861e7a1f
28 input("Press enter to continue...") # secok 28 input("Press enter to continue...") # secok
29 29
30 sys.exit(rcode) 30 sys.exit(rcode)
31 31
32 32
33 def pipInstall(packageName): 33 def pipInstall(packageName, proxy):
34 """ 34 """
35 Install the given package via pip. 35 Install the given package via pip.
36 36
37 @param packageName name of the package to be installed 37 @param packageName name of the package to be installed
38 @type str 38 @type str
39 @param proxy URL of a network proxy to be used
40 @type str
39 @return flag indicating a successful installation 41 @return flag indicating a successful installation
40 @rtype bool 42 @rtype bool
41 """ 43 """
42 ok = False 44 ok = False
43 exitCode = subprocess.run( # secok 45 args = [
44 [ 46 sys.executable,
45 sys.executable, 47 "-m",
46 "-m", 48 "pip",
47 "pip", 49 "install",
48 "install", 50 "--prefer-binary",
49 "--prefer-binary", 51 "--upgrade",
50 "--upgrade", 52 ]
51 packageName, 53 if proxy:
52 ] 54 args.append(proxy)
53 ).returncode 55 args.append(packageName)
56 exitCode = subprocess.run(args).returncode # secok
54 ok = exitCode == 0 57 ok = exitCode == 0
55 58
56 return ok 59 return ok
57 60
58 61
90 "pyenchant", 93 "pyenchant",
91 "wheel", 94 "wheel",
92 "esprima", 95 "esprima",
93 ) 96 )
94 97
98 if "--proxy" in sys.argv:
99 proxyIndex = sys.argv.index("--proxy")
100 proxy = sys.argv[proxyIndex + 1]
101 del sys.argv[proxyIndex : proxyIndex + 2]
102 else:
103 proxy = None
104
95 packages = [] 105 packages = []
96 if len(sys.argv) == 2: 106 if len(sys.argv) == 2:
97 if sys.argv[1] == "--all": 107 if sys.argv[1] == "--all":
98 packages = requiredPackages + optionalPackages 108 packages = requiredPackages + optionalPackages
99 elif sys.argv[1] == "--required": 109 elif sys.argv[1] == "--required":
101 elif sys.argv[1] == "--optional": 111 elif sys.argv[1] == "--optional":
102 packages = optionalPackages 112 packages = optionalPackages
103 113
104 if not packages: 114 if not packages:
105 print("Usage:") 115 print("Usage:")
106 print(" install-dependencies --all | --optional | --required") 116 print(" install-dependencies [--proxy url] --all | --optional | --required")
107 print("where:") 117 print("where:")
108 print(" --all install all dependencies") 118 print(" --all install all dependencies")
109 print(" --optional install all optional dependencies") 119 print(" --optional install all optional dependencies")
110 print(" --required install all required dependencies") 120 print(" --required install all required dependencies")
111 121
112 exit(42) 122 exit(42)
113 123
114 failedPackages = [] 124 failedPackages = []
115 for package in packages: 125 for package in packages:
116 ok = pipInstall(package) 126 ok = pipInstall(package, proxy)
117 if not ok: 127 if not ok:
118 failedPackages.append(package) 128 failedPackages.append(package)
119 129
120 print() 130 print()
121 print("Installation Summary") 131 print("Installation Summary")

eric ide

mercurial