我正在构建一个Python应用程序,不想强迫我的客户端安装Python和模块。
那么,是否有一种方法可以将Python脚本编译为独立的可执行文件?
我正在构建一个Python应用程序,不想强迫我的客户端安装Python和模块。
那么,是否有一种方法可以将Python脚本编译为独立的可执行文件?
当前回答
py2exe会生成你想要的EXE文件,但是你需要在你要使用新的EXE文件的机器上有相同版本的MSVCR90.dll。
有关更多信息,请参阅教程。
其他回答
您可以使用py2exe,并使用Cython将密钥的.py文件转换为.pyc, C编译文件,如Windows中的.dll和Linux中的.so。
它比普通的.pyo和.pyc文件更难恢复(而且性能也有所提高!)。
你可能喜欢py2exe。您还可以在其中找到在Linux上执行此操作的信息。
我想编译一些关于使用Python 2.7在Windows上创建独立文件的有用信息。
我已经使用py2exe,它工作,但我有一些问题。
它已经显示了在Windows 64位中创建单个文件的一些问题:使用py2exe使用bundle_files = 1不起作用; 有必要创建一个setup.py文件以使其工作。http://www.py2exe.org/index.cgi/Tutorial步骤2; 我有依赖关系的问题,你必须通过导入安装文件中的包来解决; 我不能让它与PyQt一起工作。
最后一个原因让我尝试PyInstaller http://www.pyinstaller.org/。
在我看来,这样更好,因为:
它更容易使用。
我建议用以下代码创建一个。bat文件(pyinstaller.exe必须在Windows路径中):
pyinstaller.exe --onefile MyCode.py
在其他选项中,您可以创建单个文件(https://pyinstaller.readthedocs.io/en/stable/usage.html#options)。 我使用PyInstaller和多处理包时只有一个问题,通过使用这个配方解决了:https://github.com/pyinstaller/pyinstaller/wiki/Recipe-Multiprocessing。
所以,我认为,至少对于python 2.7,一个更好更简单的选择是PyInstaller。
对于Python 3.2脚本,唯一的选择是cx_Freeze。从资源中构建;否则行不通。
对于Python 2。我建议使用PyInstaller,因为它可以将Python程序打包到一个可执行文件中,而不像cx_Freeze那样输出库。
使用Cython转换为C、编译并链接GCC。
另一种方法是,用C语言编写核心函数(那些你想要使其难以反转的函数),编译它们并使用Boost。Python导入编译后的代码(而且代码执行速度更快)。然后使用上面提到的任何工具进行分发。