ืขื“ื›ื•ืŸ JPype 1.0.2, ืกืคืจื™ื™ื” ืœื’ื™ืฉื” ืœืฉื™ืขื•ืจื™ Java ืž-Python

ื–ืžื™ืŸ ืžื”ื“ื•ืจื” ื—ื“ืฉื” ืฉืœ interlayer JPype 1.0.2, ื”ืžืืคืฉืจ ืœืš ืœืืจื’ืŸ ื’ื™ืฉื” ืžืœืื” ืฉืœ ื™ื™ืฉื•ืžื™ Python ืœืกืคืจื™ื•ืช ื›ื™ืชื•ืช Java. ืขื JPype ืž-Python, ืืชื” ื™ื›ื•ืœ ืœื”ืฉืชืžืฉ ื‘ืกืคืจื™ื•ืช ืกืคืฆื™ืคื™ื•ืช ืœ-Java ื›ื“ื™ ืœื™ืฆื•ืจ ื™ื™ืฉื•ืžื™ื ื”ื™ื‘ืจื™ื“ื™ื™ื ื”ืžืฉืœื‘ื™ื ืงื•ื“ Java ื•-Python. ืฉืœื ื›ืžื• Jython, ืื™ื ื˜ื’ืจืฆื™ื” ืขื Java ืžื•ืฉื’ืช ืœื ื‘ืืžืฆืขื•ืช ื™ืฆื™ืจืช ื•ืจื™ืื ื˜ ืฉืœ Python ืขื‘ื•ืจ ื”-JVM, ืืœื ื‘ืืžืฆืขื•ืช ืื™ื ื˜ืจืืงืฆื™ื” ื‘ืจืžืช ืฉืชื™ ื”ืžื›ื•ื ื•ืช ื”ื•ื™ืจื˜ื•ืืœื™ื•ืช ื”ืžืฉืชืžืฉื•ืช ื‘ื–ื™ื›ืจื•ืŸ ืžืฉื•ืชืฃ. ื”ื’ื™ืฉื” ื”ืžื•ืฆืขืช ืžืืคืฉืจืช ืœื ืจืง ืœื”ืฉื™ื’ ื‘ื™ืฆื•ืขื™ื ื˜ื•ื‘ื™ื, ืืœื ื’ื ืžืกืคืงืช ื’ื™ืฉื” ืœื›ืœ ืกืคืจื™ื•ืช CPython ื•-Java. ืงื•ื“ ืคืจื•ื™ืงื˜ ืžื•ืคืฅ ืขืœ ื™ื“ื™ ืžื•ืจืฉื” ืชื—ืช Apache 2.0.

ืฉื™ื ื•ื™ื™ื ืขื™ืงืจื™ื™ื:

  • ืžื˜ืžื•ืŸ ื ื•ืกืฃ ืœืงืจื™ืื•ืช ืœืžืชื•ื“ื” ื›ื“ื™ ืœืžื ื•ืข ืจื–ื•ืœื•ืฆื™ื™ืช ืขื•ืžืก ื™ืชืจ, ืžื” ืฉืžืคื—ื™ืช ืžืื•ื“ ืืช ื”ืฉืคืขืช ื”ื‘ื™ืฆื•ืขื™ื ืฉืœ ืจื–ื•ืœื•ืฆื™ื™ืช ื”ืฉื™ื˜ื”, ื‘ืžื™ื•ื—ื“ ืื ืื•ืชื• ืขื•ืžืก ื ืงืจื ืคืขืžื™ื ืจื‘ื•ืช, ื›ืžื• ื‘ืžื”ืœืš ื‘ื™ืฆื•ืข ืœื•ืœืื”.
  • ืž-4 ืขื“ 100 ืคืขืžื™ื, ื‘ื”ืชืื ืœืกื•ื’ ื”ื ืชื•ื ื™ื, ืžื•ืืฆืช ื”ืขื‘ืจืช ื”ืจืฉื™ืžื•ืช, ื”ื˜ืคื•ืœื™ื ื•ื”ืžืื’ืจื™ื ืœืžืขืจื›ื™ื ืฉืœ ืคืจื™ืžื™ื˜ื™ื‘ื™ื™ื ืฉืœ Java. ื”ื”ืžืจื” ืžืฉืชืžืฉืช ื‘ืขื™ื‘ื•ื“ ืื•ืคื˜ื™ืžืœื™ ืฉืœ ืžืื’ืจื™ื ื‘ื–ื™ื›ืจื•ืŸ, ื‘ืžืงื•ื ื‘-Sequence API. ื›ืืฉืจ ื ืชืงืœื™ื ื‘ืžืื’ืจ ืฉืœ Python, ืจืง ื”ืืœืžื ื˜ ื”ืจืืฉื•ืŸ ื ื‘ื“ืง ืœื”ืžืจื”, ืžื›ื™ื•ื•ืŸ ืฉืžืื’ืจื™ื ืืœื” ื”ื ื”ื•ืžื•ื’ื ื™ื™ื.
  • ืขื™ื‘ื•ื“ ืคืขื•ืœื•ืช ื›ื™ื‘ื•ื™ (ืžื™ื•ืฉื ื‘-JPype 1.0.0, ืืš ื“ื™ืœื’ ืขืœื™ื• ื‘ืขืช ื”ื›ื ืช ื™ื•ืžืŸ ื”ืฉื™ื ื•ื™ื™ื). JPype ืงื•ืจื ื›ืขืช ืœืฉื’ืจืช ื”ื›ื™ื‘ื•ื™ ืฉืœ JVM, ืฉืžื ืกื” ืœืฆืืช ื‘ื—ืŸ. ื–ื” ืžื•ื‘ื™ืœ ืœืžืกืคืจ ืฉื™ื ื•ื™ื™ื ื‘ื”ืชื ื”ื’ื•ืช. ืฉืจืฉื•ืจื™ื ืฉืื™ื ื ื‘ืจืงืข (ืฉื™ื—ื•ืช ืคืจื•ืงืกื™) ื™ื›ื•ืœื™ื ื›ืขืช ืœื”ืฉืื™ืจ ืืช ื”-JVM ืคืชื•ื— ืขื“ ืฉื”ื ื™ืกืชื™ื™ืžื•. ืฉื™ื—ื•ืช ืคืจื•ืงืกื™ ื™ืขื‘ื“ื• ืืช ื”ื›ื™ื‘ื•ื™ ืขื“ ืœื”ืฉืœืžืช ื”ืฉื™ื—ื”, ืืš ื™ืงื‘ืœื• ื”ื•ื“ืขืช ื‘ื™ื˜ื•ืœ. ื”ืงื‘ืฆื™ื ื ืกื’ืจื™ื ื›ืขืช ื›ืจืื•ื™ ื•ื ืฉื˜ืคื™ื ืœื“ื™ืกืง ืื ื”ืฉืจืฉื•ืจื™ื ืžื˜ืคืœื™ื ื‘ื—ืจื™ื’ ื›ืฆืคื•ื™. ื•ื•ื™ ื ื™ืงื•ื™ ืžืฉืื‘ื™ื ื•ื’ื™ืžื•ืจื™ื ืžื‘ื•ืฆืขื™ื. ื›ืืฉืจ ื—ื•ื˜ื™ื ื ื•ืฆืจื™ื, ื”-AtExit hooks ื ืงืจืื™ื. ื‘ืืžืฆืขื•ืช ื”ื“ืžื•ืŸ, ืฉื™ืœื•ื‘ ืฉืจืฉื•ืจ ืื•ื˜ื•ืžื˜ื™ ืžื™ื•ืฉื ื‘ืขืช ืฉื™ืžื•ืฉ ื‘-JVM ืž-Python. ืงื•ื“ ื‘ืื’ื™ ืฉืœื ื™ื›ื•ืœ ืœื”ืชืžื•ื“ื“ ื›ืจืื•ื™ ืขื ื ื™ืงื•ื™ ืฉืจืฉื•ืจ ื™ืชืงืข ื›ื›ืœ ื”ื ืจืื” ื›ืืฉืจ ื”ื›ื™ื‘ื•ื™ ืžืชื‘ืฆืข. ืชื™ืขื•ื“ ื ื•ืกืฃ ื ื™ืชืŸ ืœืžืฆื•ื ื‘ืžื“ืจื™ืš ืœืžืฉืชืžืฉ.
  • ื”ืžืขื˜ืคืช ืœ-Throwable ืงื™ื‘ืœื” ืขื˜ื™ืคื” ืœ-Object ื‘ืžืงื•ื ื”ืชื•ืฆืื” ื”ืฆืคื•ื™ื”, ืžื” ืฉื”ื•ื‘ื™ืœ ืœื”ืžืจื•ืช ืžื•ื–ืจื•ืช ืžืžื—ืœืงื•ืช Python.
  • ืชื•ืงืŸ ืฉื’ื™ืื•ืช ื”ืงืœื“ื” ื‘ืžืขืจื›ืช ื”ื™ื™ื‘ื•ื โ€‹โ€‹ืฉื”ื•ื‘ื™ืœื• ืœืฉื’ื™ืื” 'ยปjnameยป ืœื ื ืžืฆื'.
  • ื•ื“ื ืฉ-"^C" ืงื•ื“ื ื›ื”ืœื›ื” ื‘-KeyboardInterrupt.
  • ืชื•ืงื ื” ื‘ืขื™ื” ืขื ืกืžืœื™ื ืžืื– Python 3.5.3. PySlice_Unpack ื”ื•ืฆื’ ื‘ืžื”ื“ื•ืจืช ืชื™ืงื•ืŸ ืฉืœืื—ืจ ืžื›ืŸ (3.5.4) ื•ืœื ื”ื™ื” ืฆืจื™ืš ืœื”ืฉืชืžืฉ ื‘ื•.
  • ืชื•ืงืŸ ื‘ืื’ ืขื numpy.linalg.inv ืฉื”ื•ื‘ื™ืœ ืœื”ืชืจืกืงื•ืช. ื”ื‘ืขื™ื” ื–ื•ื”ืชื” ืœืชืงืฉื•ืจืช ื‘ื™ืŸ ื”-JVM ืœื›ืžื” ื˜ืขืžื™ื ื ื“ื•ืฉื™ื. ื”ืคืชืจื•ืŸ ื”ืžื•ืฆืข ื”ื•ื ืœืงืจื•ื ืœ-numpy.linalg.inv ืœืคื ื™ ื”ืคืขืœืช ื”-JVM.

ืžืงื•ืจ: OpenNet.ru

ื”ื•ืกืคืช ืชื’ื•ื‘ื”