Python - Java桥。steve menard的jpype项目的fork(http://jpype.sourceforge.net/),以及luis nell应用的修改(https://github.com/original/jpype)
JPype1-py3的Python项目详细描述
折旧警告
这个fork是一段时间以来唯一与Python 3兼容的JPype版本, 但它后来停滞不前,其根本项目, jpype-project/jpype已添加 很多功能,包括PY3的支持。
Issue #28已经表明 这两个分叉之间的区别主要在于实现和 分发级别
因此,这个fork现在已经被弃用,不应该再使用了。 版本0.5.5.4将是此存储库的最后一个发布版本,并且仅限于 在安装和导入时添加弃用警告。
这个项目将保存在GitHub上,不会再发展了
jpype-python 3
JPype is an effort to allow python programs full access to java class libraries. This is achieved not through re-implementing Python, as Jython/JPython has done, but rather through interfacing at the native level in both Virtual Machines. Eventually, it should be possible to replace Java with python in many, though not all, situations. JSP, Servlets, RMI servers and IDE plugins are good candidates.
Once this integration is achieved, a second phase will be started to separate the Java logic from the Python logic, eventually allowing the bridging technology to be used in other environments, I.E. Ruby, Perl, COM, etc …
这个github fork是jpype的python 3版本。 它不支持python 2。
这是originell/jpype的叉子, 它最初的目的是简化jpype在linux和 MacOS X
已知缺陷/限制
- 包外(在<default>package中)的Java类不能 进口的
- 无法访问与python关键字冲突的字段或方法
- 由于缺乏jvm支持,您不能关闭jvm然后重新启动 它。
- 有些方法依赖于“当前”类/调用方。因为电话是直接打过来的 从python代码中没有当前类,这些方法不起作用。 用户手册列出了所有类似的已知方法。
路线图
这个J型分叉的未来发展:
- 紧跟Python2版本(补丁、问题等)
- 在Python3中转换示例
- 查看代码(Python和C++):清理,添加注释,…/LI>
- 单独的Python 3特定代码(Python和C++)
要求
Python 3开发文件和Sun/Oracle JDK/JRE变体 或者openjdk。
debian/ubuntu
debian/ubuntu用户必须安装g++和python3-dev 首先:
sudo apt-get install g++ python3-dev
红帽/软呢帽
Fedora用户也一样:
su -c 'yum install gcc-c++ python3-devel'
安装
在Linux上:
sudo python3 setup.py install
在Windows上:
python setup.py install
如果失败…
这主要是由于安装程序无法找到 JAVA_HOME。如果发生这种情况,请做两件事:
您可以通过查找上的JAVA_HOME继续安装 你自己的(标题等的位置)并且明确 为安装设置:
JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-amd64 python3 setup.py install
请创建问题 on GitHub和 把你所有的信息都贴出来。
测试时间
OS | Architecture | Java version |
---|---|---|
Fedora 18 | 64 bits | OpenJDK 6 and 7 |
Fedora 19 | 64 bits | OpenJDK 6 and 7 |
Ubuntu 12.04 | 64 bits | OpenJDK 6 and 7 |
Mac OS X 10.8.4 | 64 bits | Oracle JDK 6 and 7 |
Mac OS X 10.9 | 64 bits | Oracle JDK 6 and 7 |
Windows 7 | 32 bits | Oracle JDK 7 and OpenJDK 7 |