Cython编译的EXE需要Python安装才能运行

时间:2020-05-21 03:02:33

标签: python gcc compilation runtime cython

我已经使用以下cython和gcc命令编译了python代码(在Windows中):-

cython --embed -o hello.c hello.py
gcc -municode -mthreads -Wall -O -IC:\Python37\include -LC:\Python37\libs hello.c -lpython37 -Wl,--subsystem,windows -o hello.exe

(我正在hello.py中使用诸如request,pysimpleguiqt和fdb之类的模块)

生成的exe需要安装python才能执行。有什么方法可以在运行时无需安装python进行编译?

1 个答案:

答案 0 :(得分:0)

是否有任何方法可以在运行时无需安装python进行编译?

也许是技术上是的(对Cython进行了一些改进),但是....

生成的可执行文件可能非法重新分发

(如果您使用静态链接并且 not 并未获得合法的软件许可)

再次仔细阅读与Python有关的所有open source许可证以及您的所有依赖关系,甚至包括间接依赖关系,并向您的律师展示(使用EULA控制Windows系统)

如果要在专业环境中编码,请考虑使用Python以外的其他语言对其进行编码。请注意tivoization

我不是律师

向您的律师咨询software license的问题。主题非常复杂,需要专业律师的帮助,尤其是executables已在全球范围内发售,或在某些设备上embedded发售。 与软件相关的法律在美国和法国(甚至在美国的各个州)或在印度或中国也不同。

生成的exe需要安装python才能执行

这是正常现象。相关主题称为DLL hell

(我正在hello.py中使用诸如request,pysimpleguiqt和fdb之类的模块)

PySimpleGuiQt取决于Qt。因此,您需要Windows上的Qt license ,如果您想合法分发生成的可执行文件(如果代码是嵌入式的,则需要嵌入式系统的Qt许可证)。 fdb具有不同的许可证。

另请参阅https://opensource.stackexchange.com/

您还可以(在得到您的经理或客户的事先批准的情况下)根据GPLv3+发行和分发软件,并请律师检查所有软件许可是否兼容并合法……

您可以使用自己的JIT compilation库重新编码Python字节码解释器。这至少需要花费几个月的时间,并且生成的可执行文件可能是合法的(如果您至少购买了Qt许可证)。

您需要律师

PS。我本人是APRIL的成员,Court of Cassation是法国的一家致力于开源软件的非营利性协会。即使在法国,法律主题也很难。如果您的雇主或客户在法国销售您的软件(违反许可证),我希望APRIL可以对您的产品提起诉讼。法律先例是有利的(除非已购买了适当的Qt许可证)。 Systematic competitiveness cluster有一些法律案件,APRIL胜诉。

NB。我专业地写了一些与重写Cython有关的研究补助金建议,就像上面建议的那样。通常,法律问题是最难写的。那笔赠款没有资金。例如,请参见For Reference。他们用法语写了一份有关法国法律许可问题的文件。