有没有一种方法可以生成一个运行python文件的可执行文件,在该文件中执行不同的python文件?
我目前正在开发一个大型python项目,我想创建一个启动main.py文件的.exe文件。我有一个名为ultimate_launcher.py的文件,其中包含以下代码:有没有一种方法可以生成一个运行python文件的可执行文件,在该文件中执行不同的python文件?,python,exe,pyinstaller,Python,Exe,Pyinstaller,我目前正在开发一个大型python项目,我想创建一个启动main.py文件的.exe文件。我有一个名为ultimate_launcher.py的文件,其中包含以下代码: exec(打开(“main.py”).read()) 这是我在堆栈溢出上找到的解决方案。它作为.py文件运行良好,但当我使用pyinstaller将其转换为.exe时,它有一个“致命”错误 我不希望我的项目的其余部分被放入.exe,因为我仍在开发过程中。 所以我的问题是如何生成一个只引用main.py文件的.exe,这样当它被
exec(打开(“main.py”).read())
这是我在堆栈溢出上找到的解决方案。它作为.py文件运行良好,但当我使用pyinstaller将其转换为.exe时,它有一个“致命”错误
我不希望我的项目的其余部分被放入.exe,因为我仍在开发过程中。
所以我的问题是如何生成一个只引用main.py文件的.exe,这样当它被更新时,我就不必重新生成.exe文件了
我相信有一种方法可以实现此线程中的详细说明: 编辑: 这很有效
import subprocess
f = open("c:\\temp\\temp.py", "w")
f.write(open("main.py").read())
f.close()
subprocess.call("\"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\Python37_64\\Scripts\\pyinstaller.exe\" --distpath \"c:\\temp\" c:\\temp\\temp.py " )
subprocess.call("C:\\temp\\temp\\temp.exe")
谢谢,但解决方案并不好,因为我需要的是main.py的“快捷方式”,因为整个项目中存在大量导入混乱。有没有办法做到这一点?我认为这与运行exe时的编译有关。我在想也许可以让你的exe先创建一个加载main的.py文件,然后在创建的.py文件上运行你的pyinstaller命令并触发新的exe?你的意思是让它创建一个导入main的文件,然后生成一个.exe吗?只是我现在无法自己测试它。如果我回到我的电脑时你仍然卡在那里,我会亲自尝试。仍然是相同的致命错误,如果我运行.py文件,它在f=open(“c:\\temp\\temp.py”,“w”)中找不到“c:\\temp\\temp.py”目录
import subprocess
f = open("c:\\temp\\temp.py", "w")
f.write(open("main.py").read())
f.close()
subprocess.call("\"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\Python37_64\\Scripts\\pyinstaller.exe\" --distpath \"c:\\temp\" c:\\temp\\temp.py " )
subprocess.call("C:\\temp\\temp\\temp.exe")