αž€αžΆαžšαž’αŸ’αžœαžΎαž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž—αžΆαž– JPype 1.0.2 αž”αžŽαŸ’αžŽαžΆαž›αŸαž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž…αžΌαž›αž”αŸ’αžšαžΎαžαŸ’αž“αžΆαž€αŸ‹ Java αž–αžΈ Python

αž˜αžΆαž“ αž€αžΆαžšαž…αŸαž‰αž•αŸ’αžŸαžΆαž™αžαŸ’αž˜αžΈαž“αŸƒ interlayer JPype 1.0.2αžŠαŸ‚αž›αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž€αž˜αŸ’αž˜αžœαž·αž’αžΈ Python αž˜αžΆαž“αžŸαž·αž‘αŸ’αž’αž·αž…αžΌαž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž–αŸαž‰αž›αŸαž‰αž‘αŸ…αž€αžΆαž“αŸ‹αž”αžŽαŸ’αžŽαžΆαž›αŸαž™αžαŸ’αž“αžΆαž€αŸ‹αž€αŸ’αž“αž»αž„αž—αžΆαžŸαžΆ Java αŸ” αž‡αžΆαž˜αž½αž™ JPype αž–αžΈ Python αž’αŸ’αž“αž€αž’αžΆαž…αž”αŸ’αžšαžΎαž”αžŽαŸ’αžŽαžΆαž›αŸαž™ Java-specific αžŠαžΎαž˜αŸ’αž”αžΈαž”αž„αŸ’αž€αžΎαžαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αžΌαž“αž€αžΆαžαŸ‹αžŠαŸ‚αž›αžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž‚αŸ’αž“αžΆαžšαžœαžΆαž„αž€αžΌαžŠ Java αž“αž·αž„ Python αŸ” αž˜αž·αž“αžŠαžΌαž… Jython αž€αžΆαžšαžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž‡αžΆαž˜αž½αž™ Java αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαž˜αŸ’αžšαŸαž…αž˜αž·αž“αž˜αŸ‚αž“αžαžΆαž˜αžšαž™αŸˆαž€αžΆαžšαž”αž„αŸ’αž€αžΎαž Python αžœαŸ‰αžΆαžšαŸ’αž™αŸ‰αž„αŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ JVM αž“αŸ„αŸ‡αž‘αŸ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžαžΆαž˜αžšαž™αŸˆαž’αž“αŸ’αžαžšαž€αž˜αŸ’αž˜αž“αŸ…αž€αž˜αŸ’αžšαž·αžαž“αŸƒαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž“αž·αž˜αŸ’αž˜αž·αžαž‘αžΆαŸ†αž„αž–αžΈαžšαžŠαŸ„αž™αž”αŸ’αžšαžΎαž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αžšαž½αž˜αŸ” αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαžŠαŸ‚αž›αž”αžΆαž“αžŸαŸ’αž“αžΎαž‘αžΎαž„αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž˜αž·αž“αžαŸ’αžšαžΉαž˜αžαŸ‚αžŸαž˜αŸ’αžšαŸαž…αž”αžΆαž“αž“αžΌαžœαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž›αŸ’αž’αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αž‘αŸ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžαŸ‚αž˜αž‘αžΆαŸ†αž„αž•αŸ’αžαž›αŸ‹αž“αžΌαžœαž€αžΆαžšαž…αžΌαž›αž‘αŸ…αž€αžΆαž“αŸ‹αž”αžŽαŸ’αžŽαžΆαž›αŸαž™ CPython αž“αž·αž„ Java αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αŸ” αž€αžΌαžŠαž‚αž˜αŸ’αžšαŸ„αž„ αž…αŸ‚αž€αž…αžΆαž™β€‹αžŠαŸ„αž™ αž˜αžΆαž“αž’αžΆαž‡αŸ’αž‰αžΆαž”αŸαžŽαŸ’αžŽαž€αŸ’αžšαŸ„αž˜ Apache 2.0 αŸ”

αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαžŸαŸ†αžαžΆαž“αŸ‹αŸ—αŸ–

  • αžƒαŸ’αž›αžΆαŸ†αž„αžŸαž˜αŸ’αž„αžΆαžαŸ‹αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ…αž€αžΆαžšαž αŸ…αžαžΆαž˜αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžαŸ’αžš αžŠαžΎαž˜αŸ’αž”αžΈαž‡αŸ€αžŸαžœαžΆαž„αž€αžΆαžšαžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž›αžΎαžŸαž‘αž˜αŸ’αž„αž“αŸ‹ αžŠαŸ‚αž›αž€αžΆαžαŸ‹αž”αž“αŸ’αžαž™αž™αŸ‰αžΆαž„αžαŸ’αž›αžΆαŸ†αž„αž“αžΌαžœαž•αž›αž”αŸ‰αŸ‡αž–αžΆαž›αŸ‹αž“αŸƒαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸƒαžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžαŸ’αžš αž‡αžΆαž–αž·αžŸαŸαžŸαž”αŸ’αžšαžŸαž·αž“αž”αžΎαž€αžΆαžšαž•αŸ’αž‘αž»αž€αž›αžΎαžŸαžŠαžΌαž…αž‚αŸ’αž“αžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αŸαž αŸ…αžαžΆαž…αŸ’αžšαžΎαž“αžŠαž„ αžŠαžΌαž…αž‡αžΆαž’αŸ†αž‘αž»αž„αž–αŸαž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžšαž„αŸ’αžœαž·αž›αž‡αž»αŸ†αŸ”
  • αž–αžΈ 4 αž‘αŸ… 100 αžŠαž„ αž’αžΆαžŸαŸ’αžšαŸαž™αž›αžΎαž”αŸ’αžšαž—αŸαž‘αž‘αž·αž“αŸ’αž“αž“αŸαž™ αž€αžΆαžšαž•αŸ’αž‘αŸαžšαž”αž‰αŸ’αž‡αžΈ tuples αž“αž·αž„ buffers αž‘αŸ… arrays αž“αŸƒ Java primitives αžαŸ’αžšαžΌαžœαž”αžΆαž“αž–αž“αŸ’αž›αžΏαž“αŸ” αž€αžΆαžšαž”αŸ†αž”αŸ’αž›αŸ‚αž„αž“αŸαŸ‡αž”αŸ’αžšαžΎαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαŸ‚αž›αž”αžΆαž“αž’αŸ’αžœαžΎαž±αŸ’αž™αž”αŸ’αžšαžŸαžΎαžšαž“αŸƒαžŸαžαž·αž”αžŽαŸ’αžŠαŸ„αŸ‡αž’αžΆαžŸαž“αŸ’αž“αž€αŸ’αž“αž»αž„αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ† αž‡αŸ†αž“αž½αžŸαž±αŸ’αž™ Sequence API αŸ” αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž”αžΆαž“αž‡αž½αž”αž”αŸ’αžšαž‘αŸ‡αžŸαžαž·αž”αžŽαŸ’αžŠαŸ„αŸ‡αž’αžΆαžŸαž“αŸ’αž“ Python αž˜αžΆαž“αžαŸ‚αž’αžΆαžαž»αž‘αžΈαž˜αž½αž™αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž–αž·αž“αž·αžαŸ’αž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž”αŸ†αž”αŸ’αž›αŸ‚αž„ αžŠαŸ„αž™αžŸαžΆαžšαžŸαžαž·αž”αžŽαŸ’αžŠαŸ„αŸ‡αž’αžΆαžŸαž“αŸ’αž“αž‘αžΆαŸ†αž„αž“αŸαŸ‡αž˜αžΆαž“αž›αž€αŸ’αžαžŽαŸˆαžŠαžΌαž…αž‚αŸ’αž“αžΆαŸ”
  • αž€αŸ†αž–αž»αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž”αž·αž‘ (αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαž“αŸ…αž€αŸ’αž“αž»αž„ JPype 1.0.0 αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαŸ†αž›αž„αž“αŸ…αž–αŸαž›αžšαŸ€αž”αž…αŸ†αž€αŸ†αžŽαžαŸ‹αž αŸαžαž»αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžš) αŸ” αž₯αž‘αžΌαžœαž“αŸαŸ‡ JPype αž αŸ…αž‘αž˜αŸ’αžšαž„αŸ‹αž€αžΆαžšαž”αž·αž‘ JVM αžŠαŸ‚αž›αž–αŸ’αž™αžΆαž™αžΆαž˜αž…αžΆαž€αž…αŸαž‰αž™αŸ‰αžΆαž„αžšαž›αžΌαž“αŸ” αž“αŸαŸ‡αž“αžΆαŸ†αž±αŸ’αž™αž˜αžΆαž“αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž’αžΆαž€αž”αŸ’αž”αž€αž·αžšαž·αž™αžΆαž˜αž½αž™αž…αŸ†αž“αž½αž“αŸ” αžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž‘αžΆαž™αžŠαŸ‚αž›αž˜αž·αž“αž˜αžΆαž“αž•αŸ’αž‘αŸƒαžαžΆαž„αž€αŸ’αžšαŸ„αž™ (αž€αžΆαžšαž αŸ…αž‘αžΌαžšαžŸαž–αŸ’αž‘αžŠαŸ„αž™αž”αŸ’αžšαžΌαž€αžŸαŸŠαžΈ) αž₯αž‘αžΌαžœαž“αŸαŸ‡αž’αžΆαž…αžšαž€αŸ’αžŸαžΆ JVM αž”αžΎαž€αžšαž αžΌαžαžŠαž›αŸ‹αž–αž½αž€αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž‰αŸ’αž…αž”αŸ‹αŸ” αž€αžΆαžšαž αŸ…αž‘αžΌαžšαžŸαž–αŸ’αž‘αžŠαŸ„αž™αž”αŸ’αžšαžΌαž€αžŸαŸŠαžΈαž“αžΉαž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž”αž·αž‘αžšαž αžΌαžαžŠαž›αŸ‹αž€αžΆαžšαž αŸ…αž‘αžΌαžšαžŸαž–αŸ’αž‘αž”αž‰αŸ’αž…αž”αŸ‹ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž“αžΉαž„αž‘αž‘αž½αž›αž”αžΆαž“αžŸαžΆαžšαž”αŸ„αŸ‡αž”αž„αŸ‹αŸ” αž₯αž‘αžΌαžœαž“αŸαŸ‡ αž―αž€αžŸαžΆαžšαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž·αž‘αž™αŸ‰αžΆαž„αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœ αž“αž·αž„αž αžΌαžšαž…αžΌαž›αž‘αŸ…αž€αŸ’αž“αž»αž„αžαžΆαžŸ αž”αŸ’αžšαžŸαž·αž“αž”αžΎαžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž‘αžΆαž™αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž€αžΆαžšαž›αžΎαž€αž›αŸ‚αž„αžŠαžΌαž…αž€αžΆαžšαžšαŸ†αž–αžΉαž„αž‘αž»αž€αŸ” αž‘αŸ†αž–αž€αŸ‹αžŸαž˜αŸ’αž’αžΆαžαž’αž“αž’αžΆαž“ αž“αž·αž„αž’αŸ’αž“αž€αž…αž»αž„αž€αŸ’αžšαŸ„αž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αŸ” αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž‘αžΆαž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαž αž‘αŸ†αž–αž€αŸ‹ AtExit αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αŸαž αŸ…αžαžΆαŸ” αžαžΆαž˜αžšαž™αŸˆαžŠαŸαž˜αž·αž“ αž€αžΆαžšαž—αŸ’αž‡αžΆαž”αŸ‹αžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž‘αžΆαž™αžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαž“αŸ…αž–αŸαž›αž”αŸ’αžšαžΎ JVM αž–αžΈ Python αŸ” αž€αžΌαžŠ Buggy αžŠαŸ‚αž›αž˜αž·αž“αž’αžΆαž…αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž€αžΆαžšαžŸαž˜αŸ’αž’αžΆαžαžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž‘αžΆαž™αž”αžΆαž“αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœ αž‘αŸ†αž“αž„αž‡αžΆαž“αžΉαž„αž–αŸ’αž™αž½αžšαž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž€αžΆαžšαž”αž·αž‘αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αŸ” αž―αž€αžŸαžΆαžšαž”αž“αŸ’αžαŸ‚αž˜αž’αžΆαž…αžšαž€αž”αžΆαž“αž“αŸ…αž€αŸ’αž“αž»αž„αžŸαŸ€αžœαž—αŸ…αžŽαŸ‚αž“αžΆαŸ†αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αŸ”
  • wrapper for Throwable αž”αžΆαž“αž‘αž‘αž½αž› wrapper αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ Object αž‡αŸ†αž“αž½αžŸαž±αŸ’αž™αž›αž‘αŸ’αž’αž•αž›αžšαŸ†αž–αžΉαž„αž‘αž»αž€ αžŠαŸ‚αž›αž“αžΆαŸ†αž±αŸ’αž™αž˜αžΆαž“αž€αžΆαžšαž”αŸ†αž”αŸ’αž›αŸ‚αž„αžŠαŸαž…αž˜αŸ’αž›αŸ‚αž€αž–αžΈαžαŸ’αž“αžΆαž€αŸ‹ Python αŸ”
  • αž”αžΆαž“αž‡αž½αžŸαž‡αž»αž›αž€αžΆαžšαžœαžΆαž™αž’αž€αŸ’αžŸαžšαž“αŸ…αž€αŸ’αž“αž»αž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž“αžΆαŸ†αž…αžΌαž›αžŠαŸ‚αž›αž”αžŽαŸ’αžαžΆαž›αž±αŸ’αž™αž˜αžΆαž“αž€αŸ†αž αž»αžŸ '"jname" αžšαž€αž˜αž·αž“αžƒαžΎαž‰' αŸ”
  • αž’αžΆαž“αžΆαžαžΆ "^C" αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αžŸαž–αŸ’αžœαž•αŸ’αžŸαžΆαž™αž™αŸ‰αžΆαž„αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœαž“αŸ…αž€αŸ’αž“αž»αž„ KeyboardInterruptαŸ”
  • αž”αžΆαž“αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž”αž‰αŸ’αž αžΆαž‡αžΆαž˜αž½αž™αž“αž·αž˜αž·αžαŸ’αžαžŸαž‰αŸ’αž‰αžΆαž…αžΆαž”αŸ‹αžαžΆαŸ†αž„αž–αžΈ Python 3.5.3 αŸ” PySlice_Unpack αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŽαŸ‚αž“αžΆαŸ†αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž…αŸαž‰αž•αŸ’αžŸαžΆαž™αž”αŸ†αžŽαŸ‡αž‡αžΆαž”αž“αŸ’αžαž”αž“αŸ’αž‘αžΆαž”αŸ‹ (3.5.4) αž αžΎαž™αž˜αž·αž“αž‚αž½αžšαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž‘αŸαŸ”
  • αž‡αž½αžŸαž‡αž»αž›αž€αŸ†αž αž»αžŸαž‡αžΆαž˜αž½αž™ numpy.linalg.inv αžŠαŸ‚αž›αž“αžΆαŸ†αž±αŸ’αž™αž‚αžΆαŸ†αž„αŸ” αž”αž‰αŸ’αž αžΆβ€‹αž“αŸαŸ‡β€‹αžαŸ’αžšαžΌαžœβ€‹αž”αžΆαž“β€‹αž‚αŸβ€‹αžαžΆαž˜αžŠαžΆαž“β€‹αž‘αŸ…β€‹αž“αžΉαž„β€‹αž€αžΆαžšβ€‹αž‘αŸ†αž“αžΆαž€αŸ‹αž‘αŸ†αž“αž„β€‹αžšαžœαžΆαž„ JVM αž“αž·αž„β€‹αžšαžŸαž‡αžΆαžαž·β€‹αž›αŸαžβ€‹αž˜αž½αž™β€‹αž…αŸ†αž“αž½αž“αŸ” αžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžŠαŸ‚αž›αž”αžΆαž“αžŸαŸ’αž“αžΎαž‘αžΎαž„αž‚αžΊαžαŸ’αžšαžΌαžœαž‘αžΌαžšαžŸαŸαž–αŸ’αž‘αž‘αŸ… numpy.linalg.inv αž˜αž»αž“αž–αŸαž›αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜ JVM αŸ”

αž”αŸ’αžšαž—αž–: opennet.ru

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹