我可以在 python 中访问 c​​++ 或 Java 函数吗

Posted

技术标签:

【中文标题】我可以在 python 中访问 c​​++ 或 Java 函数吗【英文标题】:Can i access c++ or Java functions inside python 【发布时间】:2011-06-01 10:59:52 【问题描述】:

我主要使用 python 进行广泛的算法操作。现在我在 Django 中有我的网站。

我在 c++ 中的库很少,而在 Java 中我在 python 中没有的库很少。或者你可以说我已经有一些 c++ 、 Java 文件,其中编码了一些算法。

我可以使用那些 c++ 或 java 文件在我的 djnago 站点中调用这些函数或进行一些计算吗

【问题讨论】:

【参考方案1】:

当然,对于 C++。包装库的write a module,或使用 ctypes 或 SWIG 之类的东西。

对于 Java,您最好迁移到 Jython(并相应地使用 django-jython)。

请注意,在 Python 中同时使用 C++ Java 并非微不足道。

【讨论】:

对不起,但我的英语不太好,所以你的意思不是微不足道的意思是不简单的意思是困难的。所以你的意思是人们不使用它 需要相当多的知识和技能才能连接 C++、Java 和 Python。 或许可以用gjc将Java代码编译成native library并在其上使用C方法,但是即使库真的编译了,还是很难。 好的,但我最初不会使用它,我只是问这是否可能。实际上,我想在 python 中实现遗传算法和优化算法,我有 java 和 c++ 书籍,它们解释了代码和工作,但不是在 python 中。所以我认为我需要出现我可以桥接它们。 python中也有库,但我想自己编写代码 对于新手来说,使其工作的唯一方法是使用 Jython 而不是 Python 来调用 Java 方法。只要您没有 Java 代码(但只有书中的文字),我建议您简单地用 Python 重写它。这应该很容易。【参考方案2】:

我已经使用Boost.Python 在一定程度上成功地访问了 Python/Django 中的 C++ 库。

【讨论】:

【参考方案3】:

您可以查看 C/C++ 的 http://www.scipy.org/Weave weave 包。我自己没用过,但我知道它存在

【讨论】:

以上是关于我可以在 python 中访问 c​​++ 或 Java 函数吗的主要内容,如果未能解决你的问题,请参考以下文章

win10无法将mklink/J项识别为mdlet、函数、脚本文件或可运行程序的名称。

我可以在 python3.4 中访问与非本地或全局不同的变量吗?

用C或C ++扩展(翻译)

Python写时复制或访问时复制共享内存

如何在python字典中访问/断言元组键值

如何在 onclick 事件中访问 c​​amera.java?