将python文件+所有依赖项+解释器编译到一个java \ .net(dll或exe)文件中?

时间:2019-02-06 15:52:50

标签: java python .net dependencies

我有一些python文件,它们对pyaudio等第三方库有一些依赖性。那么,有没有一种方法可以将包括python intepreter本身在内的所有内容编译到一个.jar \ dll文件中,以便在java \ android或xamarin \ .net核心中使用它们,而无需每次都实际安装python +做pip安装? 还可以选择-编译为c \ c ++吗?

2 个答案:

答案 0 :(得分:3)

您可以使用PyInstaller创建可执行文件。 使用以下命令:

pyinstaller --onefile <your_script>.py

https://medium.com/dreamcatcher-its-blog/making-an-stand-alone-executable-from-a-python-script-using-pyinstaller-d1df9170e263

答案 1 :(得分:1)

我不知道如何编译为C,但是对于通常编译可执行文件,您可以使用pyinstaller,cx_freeze或其他一些较不常见的模块来创建一个可执行文件文件夹,其中包含所有['O', 'O', 'O', 'O', 'O', 'B-COL', 'I-COL', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'B-COL', 'I-COL', 'O', 'O', 'O', 'O', 'O'] 文件来运行程序。我只有cx_freeze的经验,所以我将在这里讨论。如果您的目标是让最终用户下载1个“文件”,那么您需要使用安装程序。要半引用cx_freeze文档,请访问:https://cx-freeze.readthedocs.io/en/latest/faq.html

  

cx_Freeze不支持构建单个文件exe,在该文件中,应用程序的所有库都嵌入一个可执行文件中。 [有一些模块可以做到这一点,但据我了解,它们使用了“黑客”,它们可以被防病毒软件标记。]

     

您可以使用 IExpress 将构建目录从cx_Freeze压缩为自解压存档:一个exe,它将您的应用程序解压缩到一个临时目录中并运行它。 IExpress是Windows附带的实用程序,用于安装程序,但是如果您告诉它在提取后运行cx_Freeze内置的exe,则它会同样有效。

     

或者,您可以使用7zip创建自解压存档。与使用IExpress相比,这有点复杂,但可能会提供更多的灵活性,并允许您仅使用开源工具来构建应用程序。

或者,您可以使用.dll进行编译以创建单个python setup.py bdist_msi文件,该文件将使用户可以选择要在何处安装程序。一天结束时,用户仍将拥有一个包含所有.msi文件的目录,但没有什么东西,但是他们可以选择将这些文件塞到硬盘驱动器上的位置!我认为这是我安装的大多数应用程序所使用的方法。这是假设您也在Windows上进行开发,如果没有,则应该在您的帖子中包括您的OS。