我正在做一个项目,它将把可编程的计算机引入到我的世界,类似于ComputerCraft,除了使用Python而不是lua。
我知道Jython,所以我认为应该检查一下我是否可以在我的项目中使用它,但是无法找到足够的信息(在他们的网站上和一些搜索)来确定。
我知道使用Jython内部的Java讨论的主题,但这不是我希望我的项目工作的方式。那些使用过计算机技术的用户知道,您只有计算机技术提供给您的库,而上面链接的主题可以完全访问。好吧一切。在我的用例中,一切都是不可能的。我也不想要from pycomputers.api import Colors
,我希望'colors‘api能像colors.red
一样使用。
希望上面的内容在Jython中是可能的,如果不是的话,我很想知道另一个Python解释器(可以从Java中使用)来制作我的项目。
发布于 2015-04-08 15:18:30
根据文档,如果您想将Jython嵌入到java应用程序中,那么您必须使用PythonInterpreter类调用它。从这里向前看非常困难,只需注意,提供filename
参数的重载是为主可执行文件的名称提供的(这些信息通常可以通过常规的旧CPython中的sys
模块获得)。
现在,为了将java中的绑定公开到python (比如控制Min克拉夫特世界),我们需要像sys.path
所描述的那样将jar文件添加到这里中,如果您想从java内部控制sys.path
值,那么请使用
PythonInterpreter pi = new PythonInterpreter();
pi.getSystemState().path.append(new PyString("path/to/java/modules.jar"));
请注意, jar文件中的包不能以反向url样式组织。相反,遵循关于包命名的说明。特别要注意命名Python模块和包,如果您遵循正确的Python命名中的指导原则,那么您将得到您想要的结果。
最后,我们用
String source = ...;
pi.execute(pi.compile(source));
https://stackoverflow.com/questions/29461833
复制相似问题