从pyinstaller包

时间:2017-06-12 21:04:08

标签: python twisted pyinstaller packaging

我有一个程序(假设它被称为" PROG"),它产生了Pronsole.py(3D打印)。如果它只是由Python解释,它在GNU / Linux和Windows中运行良好。 这条线有效:

self.pronTranspProc=reactor.spawnProcess(self.pronProtProc, pythonPath, [pythonPath, "pronsole.py"], os.environ, self.pronPathPrintrun)

当python是普通的解释器时," pythonPath"将只是该解释器的路径,因为它是sys.executable。但是当使用pyinstaller创建一个bundle以便应用程序被冻结时,sys.executable不是解释器,而是由pyinstaller生成的可执行文件(在这个例子中,它将是PROG.EXE而不是Python.exe)。该可执行文件嵌入了python解释器。问题是,如果我调用可执行文件,如果它是python解释器,那么程序PROG再次打开,这是逻辑,并且没有与打印机进行通信。

有没有办法调用嵌入式Python解释器?

到目前为止,我已经达到的解决方案是将python解释器添加到bundle中,作为一个简单的文件。但这是多余的,因为我知道inrpreter是嵌入式的。任何pythonic方式吗?

任何帮助将不胜感激

1 个答案:

答案 0 :(得分:0)

尝试

exec(open('exyernal_script.py')。read())

解释器只能由冻结的脚本引用,但是您可以使用read函数来执行其他脚本的主块。希望有帮助!