瀏覽代碼

이전 방식도 포함, 버그 수정

잉여개발기 (SPDV) 2 年之前
父節點
當前提交
93235209f2
共有 2 個文件被更改,包括 31 次插入5 次删除
  1. 15 3
      route/main_sys_restart.py
  2. 16 2
      route/tool/func.py

+ 15 - 3
route/main_sys_restart.py

@@ -11,14 +11,26 @@ def main_sys_restart():
             print('----')
             print('Restart')
 
-            run_list = [sys.executable, 'python' + python_ver, 'python3', 'python']
+            python_ver = str(sys.version_info.major) + '.' + str(sys.version_info.minor)
+
+            run_list = [sys.executable, 'python' + python_ver, 'python3', 'python', 'py -' + python_ver]
             for exe_name in run_list:
+                try:
+                    os.execl(exe_name, sys.executable, *sys.argv)
+                except:
+                    pass
+
+                try:
+                    os.execl(exe_name, '"' + sys.executable + '"', *sys.argv)
+                except:
+                    pass
+
                 try:
                     os.execl(exe_name, os.path.abspath(__file__), *sys.argv)
                 except:
                     pass
-            
-            return re_error('/error/33')
+            else:
+                return re_error('/error/33')
         else:
             return easy_minify(flask.render_template(skin_check(),
                 imp = [load_lang('wiki_restart'), wiki_set(), wiki_custom(), wiki_css([0, 0])],

+ 16 - 2
route/tool/func.py

@@ -37,11 +37,25 @@ if data_up_date == 1:
     if platform.system() in ('Linux', 'Windows'):
         python_ver = str(sys.version_info.major) + '.' + str(sys.version_info.minor)
 
-        run_list = [sys.executable, 'python' + python_ver, 'python3', 'python']
+        run_list = [sys.executable, 'python' + python_ver, 'python3', 'python', 'py -' + python_ver]
         for exe_name in run_list:
             try:
                 subprocess.check_call([exe_name, "-m", "pip", "install", "--upgrade", "--user", "-r", "requirements.txt"])
-                os.execl(exe_name, os.path.abspath(__file__), *sys.argv)
+
+                try:
+                    os.execl(exe_name, sys.executable, *sys.argv)
+                except:
+                    pass
+
+                try:
+                    os.execl(exe_name, '"' + sys.executable + '"', *sys.argv)
+                except:
+                    pass
+
+                try:
+                    os.execl(exe_name, os.path.abspath(__file__), *sys.argv)
+                except:
+                    pass
             except:
                 pass
         else: