【发布时间】:2019-02-22 15:26:45
【问题描述】:
短版: 是否有可能创建一个可以分发到没有安装 python 的计算机的独立程序,它在运行时编写 python 脚本并在期间或之后不久执行它?
加长版: 我一直想做的一个项目是创建一个可视化编程界面,让人们无需了解 python/keras/numpy 语法即可使用机器学习。像 lobe 或 rapidminer 这样的程序已经这样做了,但它们都绑定到自己的接口和服务器。我想做的是创建一个程序:
- 任何人都可以在不需要安装 python/anaconda 的情况下使用
- 允许用户创建可视化脚本,例如从头开始或 google-blocks
- 在后台生成包含 keras 或 tf 代码的 python 代码
- 能够执行脚本
- 能够向用户显示代码:
- 教育目的
- 允许用户将其用作更复杂程序的基础
由于生成部分只需要创建一个文本文件,因此几乎任何界面和语言(例如使用 Qt 的 python/java 或使用 Unity 的 C#/javascript)都符合条件。我认为这绝对是可行的,可能只是很长,但这不是我最关心的问题。
问题: 我试图在互联网上到处搜索诸如独立 python 程序之类的东西,这些程序让我找到了 py2exe。那些 python-to-exe 的工作很好,但它们都需要在包含 python 环境的机器上编译脚本。就我而言,我希望能够在用户的 PC 上生成一个 python 脚本,然后从那里直接运行它。
替代方案
如果这不可能,我可能会自己创建整个 AI 部分,而不是使用 python 或像 keras 或 tensorflow 这样的库,而是在一个统一游戏中。这样做的缺点是它已经存在(如 rapidminer),它的优化/通用性/可定制性较低,并且不会显示“真实”机器学习脚本的外观。
如果有其他选择,我会很高兴听到他们的声音
PS。
我主要有 Python 和 Keras,中等 Java 和少量 Unity3D 或 web JS 经验
我正在使用带有 anaconda 的 Windows
分发到 linux/mac 会很好,但不是必需的
【问题讨论】:
-
您可以将静态 python 版本捆绑到您的独立程序中。
-
py2exe和朋友们将 Python 解释器与所需的库子集安装在您的计算机上 一起打包以完成他们的工作。因此,它必须在安装了这些库的机器上完成。您想要的与希望在用户机器上从源代码编译程序成为可能,而源代码不在用户机器上。 -
@BoarGules 所以如果我理解正确,我必须将这些库和 python 合并到我的发行版的某个文件夹中。正如 Christian Scilitoe 所说,为了让用户机器能够执行 python 脚本(现在我正在写这个,这听起来很简单也很合乎逻辑)。我可以在不需要用户手动设置环境的情况下包含 Keras 之类的模块吗?或者这是一个要求吗?
-
@EmielWitting 只要您的
.exe包含所需的一切,就无需设置环境。使用像keras(带来numpy和scipy等)这样的复杂库来做到这一点可能说起来容易做起来难。 -
@BoarGules 我知道您可以将所有这些库捆绑到您的 .exe 中,但是对于 py2exe 之类的所有东西,.exe 必须在具有 python 环境的机器上创建。但在我的情况下,.py 只在用户的机器上生成。所以我想我只需要在我的程序/项目中嵌入一个 python 解释器和库,对吧?
标签: python keras visual-programming