一.环境搭建
1.安装32位版本的Python2.7
2.安装JPype-0.5.4.2.win32-py2.7.exe
3.安装32位的1.6版本的jdk
二.可能会遇到的问题
1.安装jpype时出现错误,翻译过来是没有那个仓库,也就是说找不到Python的安装路径(报错的现象当时我没有截图)
执行以下代码就可以解决
import sys
from _winreg import *
tweak as necessary
version = sys.version[:3]
installpath = sys.prefix
regpath = "SOFTWARE\\Python\\Pythoncore\\%s\\" % (version)
installkey = "InstallPath"
pythonkey = "PythonPath"
pythonpath = "%s;%s\\Lib\\;%s\\DLLs\\" % (
installpath, installpath, installpath
)
def RegisterPy():
try:
reg = OpenKey(HKEY_CURRENT_USER, regpath)
except EnvironmentError as e:
try:
reg = CreateKey(HKEY_CURRENT_USER, regpath)
SetValue(reg, installkey, REG_SZ, installpath)
SetValue(reg, pythonkey, REG_SZ, pythonpath)
CloseKey(reg)
except:
print "*** Unable to register!"
return
print "--- Python", version, "is now registered!"
return
if (QueryValue(reg, installkey) == installpath and
QueryValue(reg, pythonkey) == pythonpath):
CloseKey(reg)
print "=== Python", version, "is already registered!"
return
CloseKey(reg)
print "*** Unable to register!"
print "*** You probably have another Python installation!"
if __name__ == "__main__":
RegisterPy()
2.执行 jpath=getDefaultJVMPath()
后执行print jpath
得到的结果为none
出现这个问题的原因是jdk的版本问题,笔者用jdk1.6-32位的Java解决了这个问题,笔者一开始用的是jdk1.8-64位的时候出现这个问题,具体jdk1.8-32、jdk1.7-32位等版本是否可行,笔者没有亲自试过。但使用jdk1.6-32位的Java肯定能解决这个问题。在这里,还要说明一下,如果你的jpath=getDefaultJVMPath()
后执行print jpath
得到的结果为none
,你强制去jdk下取jvm.dll的绝对路径来给jpath赋值,你运行startJVM(jpaht, “-ea”)时python.exe程序会崩溃。
3.运行一个小程序
如果这个小程序你运行的结果和我的一样,说明你就成功了,
四.jpype的语法介绍
详细见:http://jpype.sourceforge.net/doc/user-guide/userguide.html