File tree 1 file changed +15
-1
lines changed
1 file changed +15
-1
lines changed Original file line number Diff line number Diff line change @@ -178,7 +178,21 @@ def destroy(self):
178
178
self .tmpdir = None
179
179
180
180
def get_final_commands (self ):
181
- return [sys .executable , sys .argv [0 ]] + self .composed_args
181
+ # 这里有两种情况:
182
+ # 1. 执行的是脚本, sys.executable 指向 Python 解释器, sys.argv[0] 指向脚本路径
183
+ # 2. 执行的是打包好的可执行文件, sys.executable 和 sys.argv[0] 都指向可执行文件路径
184
+ # 如果执行的是打包好的可执行文件, 我们优先选择相同目录下的 preppipe_cli[.exe],避免闪过窗口
185
+ executable_basename = os .path .basename (sys .executable )
186
+ argv0_basename = os .path .basename (sys .argv [0 ])
187
+ if executable_basename != argv0_basename :
188
+ # 情况1
189
+ return [sys .executable , sys .argv [0 ]] + self .composed_args
190
+ # 情况2,尝试寻找 preppipe_cli[.exe]
191
+ executable_base , executable_ext = os .path .splitext (executable_basename )
192
+ cli_executable_path = os .path .join (os .path .dirname (sys .executable ), executable_base + '_cli' + executable_ext )
193
+ if os .path .isfile (cli_executable_path ):
194
+ return [cli_executable_path ] + self .composed_args
195
+ return [sys .executable ] + self .composed_args
182
196
183
197
def launch (self , wait : bool = False ):
184
198
if self .state == ExecutionState .FAILED_TEMPDIR_CREATION :
You can’t perform that action at this time.
0 commit comments