如何在用Haxe编写的程序中执行外部Python脚本?

3

我有一个Haxe程序,需要从Wordnik API检索数据。 以下是Wordnik支持的平台列表: http://developer.wordnik.com/#!/libraries

我没有使用Wordnik支持的所有语言的经验。然而,我认为Python是将Wordnik API连接到我的Haxe程序中最可行的方法,因为Python是一种脚本语言,可以从终端命令执行。

也许可以像这样,在Haxe程序中执行Python并传递一些参数。然后,Python脚本检索来自Wordnik的数据并将其编译成JSON或.txt文件。最后返回到Haxe程序以解析JSON或.txt文件。我不确定这个方法如何工作,因此我在寻求指导:)。

1个回答

5
需要注意的一件事是使用库的Python 3版本,而不是概览页面上链接到的Python 2.7版本。Haxe的Python目标仅支持版本3或更高版本
不需要编写一个Python程序作为Haxe和Wordnik API之间的接口 - 您可以编写外部描述文件来直接从Haxe中使用它。一个非常简单的类wordnik.models.Labelextern可能如下所示:
package wordnik.models;

@:pythonImport("wordnik.models.Label", "Label")
extern class Label
{
    public var text:String;
    public var type:String;

    public function new() 
    {
    }
}

有了这个,你就可以使用Haxe的API:

package;

import python.Lib;
import wordnik.models.Label;

class Main 
{
    static function main() 
    {
        var label = new Label();
        label.text = "Test";
        trace(label.text);
    }
}

Haxe标准库 中可以找到很多 Python externs 的示例。它还为一些更难表达的东西提供了包装器,例如 KwArgs


我可以用这个来针对C++,还是只能用Python? - notalentgeek
如果将Go编译为C ++,则会返回此错误。./src/Main.cpp:32:3:错误:在此范围内未声明“Label”。 - notalentgeek
你是在使用C++吗?听起来你好像在使用Python。据我所知,Python externs只能在Python目标上工作。 - Gama11
我使用OpenFL将我的项目编译为Linux可执行文件。 - notalentgeek
听起来你想要一个常规的haxe/openfl c++应用程序,该应用程序调用一个外部的python脚本?你可以通过process命令直接调用python:http://api.haxe.org/sys/io/Process.html - larsiusprime

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接