我编写了一个初始化脚本,该脚本设置了用户环境变量,这些用户变量是已被散列和加密的密钥...一旦创建了密钥,就不再需要密钥加密exe。我要启动主应用程序并删除包含哈希和密钥加密功能的初始化文件。
我在上述任何方面都没有遇到麻烦...彼此独立时,一切工作都应正常进行。问题是,为了使主应用程序能够访问新创建的环境变量,我需要使用初始化脚本来完全退出...
我尝试过的一切,带有标志的Popen,os.system()以及其他都在父进程结束且主应用程序启动的情况下离开了我,但是环境变量尚未更新...我关闭并重新启动main.py和... boom,程序将看到更新的变量,一切都很好。
我只想运行init脚本,生成一个根本不与init.py链接的新进程,然后退出以将其删除。我以为这很简单,但是经过数小时的头部抓挠和尝试许多尝试之后,我仍然离这还很近。
如果需要,我将其捆绑为两个单独的.exe文件,但我希望它成为一键安装类型的东西。
我正在运行Windows 10,这可能是特定于平台的。
查看链接:
How to stop/terminate a python script from running?
Using a Python subprocess call to invoke a Python script
https://docs.python.org/2/library/subprocess.html
Python: Howto launch a full process not a child process and retrieve the PID
还有更多...
当前最接近的结果
p = Popen(["python","UserInterface.py"], stdin=PIPE, stdout=PIPE, stderr=PIPE,
creationflags=DETACHED_PROCESS | CREATE_NEW_PROCESS_GROUP)
SetEnvironmentVariable
设置环境变量,然后使用SetEnvironmentVariable
为创建的进程指定此环境块。