运行twi代码时,JPype无法正确编译

2024-10-01 05:01:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我的代码:

jarLocation = "C:/Users/LahiruGunawardhana/Desktop/New folder/info/infodynamics.jar"
# Start the JVM (add the "-Xmx" option with say 1024M if you get crashes due to not enough memory space)

jpype.startJVM(jpype.getDefaultJVMPath(), "-ea", "-Djava.class.path=" + jarLocation,"-Xmx256m")

teCalcClass = jpype.JPackage("infodynamics.measures.discrete").TransferEntropyCalculatorDiscrete
teCalc = teCalcClass(2,1)
teCalc.initialise()

noOfEdges=0
for i in range(0,N-1):
  for j in range(i+1,N):
   # print(i,"-->",j)
    if(nodes_connectivity(j,i) | nodes_connectivity(i,j)):

     sss = [int(i) for i in SsourceArray]
     ddd = [int(i) for i in DdestArray]
     teCalc.addObservations(sss, ddd)
     e=teCalc.computeAverageLocalOfObservations()

jpype.shutdownJVM()

我只得到这个代码的值一次。当我第二次运行此代码时,我收到一个错误消息:

^{pr2}$

不知何故,当我为每个步骤重新启动python控制台时,它会给出值。


Tags: the代码inforifrangejpypeint
1条回答
网友
1楼 · 发布于 2024-10-01 05:01:47

startJVM()之前检查isJVMStarted(),这样它将类似于:

if jpype.isJVMStarted():
    return

jpype.startJVM(jpype.getDefaultJVMPath(), "-ea", "-Djava.class.path=" + jarLocation,"-Xmx256m")

因此,如果您运行两次并且JVM正在运行此代码,将避免再次初始化它

相关问题 更多 >