เบเบฒเบ™เบ›เปˆเบญเบเบ‚เบญเบ‡ Nuitka 2.0, compiler เบชเปเบฒเบฅเบฑเบšเบžเบฒเบชเบฒ Python

เบเบฒเบ™เบ›เปˆเบญเบเป‚เบ„เบ‡เบเบฒเบ™ Nuitka 2.0 เปเบกเปˆเบ™เบกเบตเบขเบนเปˆ, เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบ‚เปเป‰เบกเบนเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เปเบ›เบžเบฒเบชเบฒ Python scripts เป€เบ›เบฑเบ™เบเบฒเบ™เป€เบ›เบฑเบ™เบ•เบปเบงเปเบ—เบ™ C, เป€เบŠเบดเปˆเบ‡เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบชเบฒเบกเบฒเบ”เบฅเบงเบšเบฅเบงเบกเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เป„เบŸเบฅเปŒเบ—เบตเปˆเบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰เป‚เบ”เบเปƒเบŠเป‰ libpython เป€เบžเบทเปˆเบญเบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบชเบนเบ‡เบชเบธเบ”เบเบฑเบš CPython (เปƒเบŠเป‰เป€เบ„เบทเปˆเบญเบ‡เบกเบท CPython เบžเบทเป‰เบ™เป€เบกเบทเบญเบ‡เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™เบงเบฑเบ”เบ–เบธ). เบชเบฐเบซเบ™เบญเบ‡เบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบขเปˆเบฒเบ‡เป€เบ•เบฑเบกเบ—เบตเปˆเบเบฑเบšเบเบฒเบ™เบ›เปˆเบญเบเบ›เบฐเบˆเบธเบšเบฑเบ™เบ‚เบญเบ‡ Python 2.6, 2.7, 3.3 - 3.11. เป€เบกเบทเปˆเบญเบ›เบฝเบšเบ—เบฝเบšเบเบฑเบš CPython, scripts เบฅเบงเบšเบฅเบงเบกเบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เป€เบ–เบดเบ‡เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš 335% เปƒเบ™เบเบฒเบ™เบ—เบปเบ”เบชเบญเบš pystone. เบฅเบฐเบซเบฑเบ”เป‚เบ„เบ‡เบเบฒเบ™เปเบกเปˆเบ™เปเบˆเบเบขเบฒเบเบžเบฒเบเปƒเบ•เป‰เปƒเบšเบญเบฐเบ™เบธเบเบฒเบ” Apache.

เปƒเบ™เบšเบฑเบ™เบ”เบฒเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เปƒเบ™เบชเบฐเบšเบฑเบšเปƒเบซเบกเปˆ:

  • เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ•เบปเบงเปเบ›เปƒเบ™เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเปเบžเบฑเบเป€เบเบฑเบ”, เบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบชเบญเบšเบ–เบฒเบกเบ„เปˆเบฒเบˆเบฒเบเปเบžเบฑเบเป€เบเบฑเบ”เบ—เบตเปˆเบ•เบดเบ”เบ•เบฑเป‰เบ‡เปƒเบ™เป€เบงเบฅเบฒเบฅเบงเบšเบฅเบงเบกเปเบฅเบฐเบ™เปเบฒเปƒเบŠเป‰เบ„เปˆเบฒเป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™เป€เบžเบทเปˆเบญเบเปเบฒเบ™เบปเบ” backend. เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ•เบปเบงเปเบ›เปƒเบ™เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เปเบเป‰เป„เบ‚เบงเบฝเบเบ‡เบฒเบ™เบซเบผเบฒเบเบขเปˆเบฒเบ‡เปƒเบ™เปเบšเบšเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบ—เบตเปˆเบ•เป‰เบญเบ‡เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ plugins เปƒเบ™เป€เบกเบทเปˆเบญเบเปˆเบญเบ™.
  • เป€เบžเบตเปˆเบกเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบ—เบตเปˆเบœเบนเป‰เปƒเบŠเป‰เบเปเบฒเบ™เบปเบ”เปƒเบซเป‰เบกเบตเบญเบดเบ”เบ—เบดเบžเบปเบ™เบ•เปเปˆเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ‚เบญเบ‡เปเบ•เปˆเบฅเบฐเบŠเบธเบ”. เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเบชเบฒเบกเบฒเบ”เบญเปˆเบฒเบ™เป„เบ”เป‰เป‚เบ”เบเปƒเบŠเป‰เบŸเบฑเบ‡เบŠเบฑเบ™ get_parameter เปƒเบซเบกเปˆเปเบฅเบฐเปƒเบŠเป‰เป€เบžเบทเปˆเบญเป€เบฅเบทเบญเบเบžเบถเบ”เบ•เบดเบเปเบฒเบ‚เบญเบ‡เป‚เบกเบ”เบนเบ™ (เบ•เบปเบงเบขเปˆเบฒเบ‡, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบเปเบฒเบ™เบปเบ”เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเป€เบžเบทเปˆเบญเบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™ Numba JIT เบซเบผเบท Torch JIT).
  • เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเป€เบžเบตเปˆเบก "--include-onefile-external-data" เป€เบžเบทเปˆเบญเบฅเบฐเบšเบธเปเบกเปˆเปเบšเบšเป„เบŸเบฅเปŒเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบ–เบทเบเบเปเบฒเบ™เบปเบ”เป„เบงเป‰เปƒเบ™เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเปเบ•เปˆเบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบชเบฐเบซเบ™เบญเบ‡เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบเบˆเบฒเบเป„เบŸเบฅเปŒเบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เปƒเบ™เป‚เบซเบกเบ” onefile.
  • เป€เบžเบตเปˆเบกเบ•เบปเบงเป€เบฅเบทเบญเบ โ€œ--cf-protectionโ€ เป€เบžเบทเปˆเบญเบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป‚เปเบ”เบ›เป‰เบญเบ‡เบเบฑเบ™ CFI (Control Flow Integrity) เปƒเบ™ GCC, เป€เบŠเบดเปˆเบ‡เบ‚เบฑเบ”เบ‚เบงเบฒเบ‡เบเบฒเบ™เบฅเบฐเป€เบกเบตเบ”เบ„เบณเบชเบฑเปˆเบ‡เบ›เบฐเบ•เบดเบšเบฑเบ”เบ›เบปเบเบเบฐเบ•เบด (เบเบฒเบ™เป„เบซเบผเบ‚เบญเบ‡เบเบฒเบ™เบ„เบงเบšเบ„เบธเบก).
  • เบชเปเบฒเบฅเบฑเบšเป„เบŸเบฅเปŒ plugin yaml, เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เบชเป‰เบฒเบ‡ checksums เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเบงเบ”เบชเบญเบšเบ„เบงเบฒเบกเบŠเบทเปˆเบชเบฑเบ”เป„เบ”เป‰เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”, เป€เบŠเบดเปˆเบ‡เปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”เบžเบงเบเป€เบ‚เบปเบฒเบงเบฒเบ‡เปเบœเบ™เบ—เบตเปˆเบˆเบฐเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบˆเบฑเบ”เบ•เบฑเป‰เบ‡เบเบฒเบ™เบขเบฑเป‰เบ‡เบขเบทเบ™เป€เบงเบฅเบฒเปเบฅเปˆเบ™.
  • เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบซเบผเบฒเบเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเบˆเบฐเบ–เบทเบเบเปเบฒเบ™เบปเบ”, เปเบเบเบญเบญเบเป‚เบ”เบเป€เบชเบฑเป‰เบ™ (เป€เบชเบฑเป‰เบ™เปƒเบซเบกเปˆเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบ›เบฑเบ™เบ•เบปเบงเบ‚เบฑเป‰เบ™). เบ•เบปเบงเบขเปˆเบฒเบ‡: include-data-dir: | a=bc=d
  • เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡ loop เป„เบ”เป‰เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”, เป€เบŠเบดเปˆเบ‡เบˆเบฐเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”เป€เบžเบทเปˆเบญเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบเบฒเบ™เบ„เบฑเบ”เป€เบฅเบทเบญเบ.
  • เป€เบžเบตเปˆเบกเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเป€เบžเบทเปˆเบญเป€เบฅเบฑเปˆเบ‡เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบ•เบปเบงเปเบ›เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เปเบšเปˆเบ‡เบ›เบฑเบ™เปเบฅเบฐเบซเบ™เบต.
  • เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เบ‚เบญเบ‡ plugin เบ•เป‰เบฒเบ™ bloat เป„เบ”เป‰เบ–เบทเบเบ‚เบฐเบซเบเบฒเบเบญเบญเบ, เป€เบŠเบดเปˆเบ‡เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบซเบผเบธเบ”เบœเปˆเบญเบ™เบˆเปเบฒเบ™เบงเบ™เปเบžเบฑเบเป€เบเบฑเบ”เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเปƒเบŠเป‰ streamlit, torch, knetworkx, distribution, skimage, bitsandbytes, tf_keras, pip, networkx เปเบฅเบฐ pywt libraries (เป‚เบ”เบเบžเบทเป‰เบ™เบ–เบฒเบ™เปเบฅเป‰เบง, เบเบฒเบ™เบœเบนเบเบกเบฑเบ”. เป€เบžเบทเปˆเบญ pytest, IPython, เบ”เบฑเบ‡, triton เบ–เบทเบเบเบปเบเป€เบงเบฑเป‰เบ™เปเบฅเบฐ dask).

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: opennet.ru

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™