Python ์–ธ์–ด์šฉ ์ปดํŒŒ์ผ๋Ÿฌ์ธ Nuitka 1.1 ์ถœ์‹œ

Python ์Šคํฌ๋ฆฝํŠธ๋ฅผ C ํ‘œํ˜„์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•œ ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ๊ฐœ๋ฐœํ•˜๋Š” Nuitka 1.1 ํ”„๋กœ์ ํŠธ์˜ ๋ฆด๋ฆฌ์Šค๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ CPython๊ณผ์˜ ์ตœ๋Œ€ ํ˜ธํ™˜์„ฑ์„ ์œ„ํ•ด libpython์„ ์‚ฌ์šฉํ•˜์—ฌ ์‹คํ–‰ ํŒŒ์ผ๋กœ ์ปดํŒŒ์ผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(๊ฐ์ฒด ์กฐ์ž‘์„ ์œ„ํ•œ ๊ธฐ๋ณธ CPython ๋„๊ตฌ ์‚ฌ์šฉ). Python 2.6, 2.7, 3.3 - 3.10์˜ ํ˜„์žฌ ๋ฆด๋ฆฌ์Šค์™€ ์™„์ „ํ•œ ํ˜ธํ™˜์„ฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. CPython์— ๋น„ํ•ด ์ปดํŒŒ์ผ๋œ ์Šคํฌ๋ฆฝํŠธ๋Š” pystone ํ…Œ์ŠคํŠธ์—์„œ 335%์˜ ์„ฑ๋Šฅ ํ–ฅ์ƒ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ ์ฝ”๋“œ๋Š” Apache ๋ผ์ด์„ ์Šค์— ๋”ฐ๋ผ ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค.

์ƒˆ ๋ฒ„์ „์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ:

  • Yaml ํ˜•์‹์œผ๋กœ ๊ตฌ์„ฑ์„ ์ง€์ •ํ•˜๋Š” ๊ฐ€๋Šฅ์„ฑ์ด ํ™•์žฅ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ๊ตฌ์„ฑ ์š”์†Œ(zoneinfo, Concurrent, asyncio ๋“ฑ)๋ฅผ ์ œ์™ธํ•˜๋Š” ๊ฒƒ๊ณผ ๊ด€๋ จ๋œ ์ตœ์ ํ™”๊ฐ€ ์ด๋ฃจ์–ด์กŒ์œผ๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด ๊ฒฐ๊ณผ ์‹คํ–‰ ํŒŒ์ผ์˜ ํฌ๊ธฐ๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • Python 3.10์— ๋„์ž…๋œ "์ผ์น˜" ์—ฐ์‚ฐ์ž๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํŒจํ„ด ์ผ์น˜์— ๋Œ€์ฒด ๊ตฌ๋ฌธ("|")์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • jinja2.PackageLoader์™€์˜ ํ˜ธํ™˜์„ฑ์ด ๋ณด์žฅ๋ฉ๋‹ˆ๋‹ค.
  • __defaults__ ์†์„ฑ์˜ ํฌ๊ธฐ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • importlib.metadata.distribution, importlib_metadata.distribution, importlib.metadata.metadata ๋ฐ importlib_metadata.metadata ํ•จ์ˆ˜์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๊ธฐ๋ณธ ์‹คํ–‰ ํŒŒ์ผ์— ์ถ”๊ฐ€ ๋ฐ”์ด๋„ˆ๋ฆฌ ํŒŒ์ผ์„ ํฌํ•จํ•˜๋Š” ์ง€์›์ด Onefile ์ปดํŒŒ์ผ ๋ชจ๋“œ์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์ปดํŒŒ์ผ๋œ ๋ชจ๋“ˆ์€ importlib.resources.files ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.
  • "--include-package-data" ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด "--include-package-data=package_name=*.txt"์™€ ๊ฐ™์ด ํŒŒ์ผ ๋งˆ์Šคํฌ๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • macOS์˜ ๊ฒฝ์šฐ ์‹คํ–‰ ํŒŒ์ผ์— ๋Œ€ํ•œ ๋””์ง€ํ„ธ ์„œ๋ช… ์ง€์›์ด ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์‹คํ–‰ ํŒŒ์ผ์˜ ๊ธฐ๋Šฅ์„ ์žฌ์ •์˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.
  • ์•ˆํ‹ฐ ๋ธ”๋กœํŠธ ํ”Œ๋Ÿฌ๊ทธ์ธ์˜ ๊ธฐ๋Šฅ์ด ํ™•์žฅ๋˜์–ด ์ด์ œ rich, pyrect ๋ฐ pytorch ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ํŒจํ‚ค์ง€ ์ˆ˜๋ฅผ ์ค„์ด๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋Œ€์ฒด ๊ทœ์น™์— ์ •๊ทœ์‹์„ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋Šฅ์ด ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๋งˆ์ง€๋ง‰ ๋ฆด๋ฆฌ์Šค์—์„œ ๊ตฌํ˜„๋œ ์ค‘์š”ํ•œ ์ตœ์ ํ™”๋กœ ์ธํ•ด ๋ฐœ์ƒํ•˜๋Š” ํšŒ๊ท€์  ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€