7
7
import platform
8
8
9
9
dir_repos = "repositories"
10
+ dir_extensions = "extensions"
10
11
python = sys .executable
11
12
git = os .environ .get ('GIT' , "git" )
12
13
index_url = os .environ .get ('INDEX_URL' , "" )
@@ -16,11 +17,11 @@ def extract_arg(args, name):
16
17
return [x for x in args if x != name ], name in args
17
18
18
19
19
- def run (command , desc = None , errdesc = None ):
20
+ def run (command , desc = None , errdesc = None , custom_env = None ):
20
21
if desc is not None :
21
22
print (desc )
22
23
23
- result = subprocess .run (command , stdout = subprocess .PIPE , stderr = subprocess .PIPE , shell = True )
24
+ result = subprocess .run (command , stdout = subprocess .PIPE , stderr = subprocess .PIPE , shell = True , env = os . environ if custom_env is None else custom_env )
24
25
25
26
if result .returncode != 0 :
26
27
@@ -101,9 +102,27 @@ def version_check(commit):
101
102
else :
102
103
print ("Not a git clone, can't perform version check." )
103
104
except Exception as e :
104
- print ("versipm check failed" ,e )
105
+ print ("version check failed" , e )
106
+
107
+
108
+ def run_extensions_installers ():
109
+ if not os .path .isdir (dir_extensions ):
110
+ return
111
+
112
+ for dirname_extension in os .listdir (dir_extensions ):
113
+ path_installer = os .path .join (dir_extensions , dirname_extension , "install.py" )
114
+ if not os .path .isfile (path_installer ):
115
+ continue
116
+
117
+ try :
118
+ env = os .environ .copy ()
119
+ env ['PYTHONPATH' ] = os .path .abspath ("." )
120
+
121
+ print (run (f'"{ python } " "{ path_installer } "' , errdesc = f"Error running install.py for extension { dirname_extension } " , custom_env = env ))
122
+ except Exception as e :
123
+ print (e , file = sys .stderr )
124
+
105
125
106
-
107
126
def prepare_enviroment ():
108
127
torch_command = os .environ .get ('TORCH_COMMAND' , "pip install torch==1.12.1+cu113 torchvision==0.13.1+cu113 --extra-index-url https://download.pytorch.org/whl/cu113" )
109
128
requirements_file = os .environ .get ('REQS_FILE' , "requirements_versions.txt" )
@@ -189,6 +208,8 @@ def prepare_enviroment():
189
208
190
209
run_pip (f"install -r { requirements_file } " , "requirements for Web UI" )
191
210
211
+ run_extensions_installers ()
212
+
192
213
if update_check :
193
214
version_check (commit )
194
215
0 commit comments