我有一个独特的问题 - 我的解决方案,我希望使用 pyinstaller 打包,在启动时基于 sys.argv JITs 一些东西。在 Windows 上使用multiprocessingwithfreeze_support时,多处理需要传入不同的参数来初始化新进程。当调用目标函数时,最终会设置原始的 sys.argv。如何在调用目标函数之前获取原始 sys.argv?
import sys
import multiprocessing
print('ArgV:', sys.argv)
def print_argv():
print(sys.argv)
if __name__ == '__main__':
multiprocessing.freeze_support()
print_argv()
p = multiprocessing.Process(target=print_argv)
p.start()
p.join()
当使用 pyinstaller 打包并使用 运行时--hello=True,会产生:
ArgV: ['scratch.exe', '--hello=True']
['scratch.exe', '--hello=True']
ArgV: ['scratch.exe', '--multiprocessing-fork', 'parent_pid=16096', 'pipe_handle=380']
['scratch.exe', '--hello=True']
我想要一些魔术代码,它可以给我我原来sys.argv的 ,也就是说--hello=True,什么时候sys.argv设置为--multiprocessing-fork...