Python ์คํฌ๋ฆฝํธ๋ฅผ C ํํ์ผ๋ก ๋ณํํ๊ธฐ ์ํ ์ปดํ์ผ๋ฌ๋ฅผ ๊ฐ๋ฐํ๋ Nuitka 2.0 ํ๋ก์ ํธ์ ๋ฆด๋ฆฌ์ค๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ CPython๊ณผ์ ์ต๋ ํธํ์ฑ์ ์ํด libpython์ ์ฌ์ฉํ์ฌ ์คํ ํ์ผ๋ก ์ปดํ์ผํ ์ ์์ต๋๋ค(๊ฐ์ฒด ์กฐ์์ ์ํ ๊ธฐ๋ณธ CPython ๋๊ตฌ ์ฌ์ฉ). Python 2.6, 2.7, 3.3 - 3.11์ ํ์ฌ ๋ฆด๋ฆฌ์ค์ ์์ ํ ํธํ์ฑ์ ์ ๊ณตํฉ๋๋ค. CPython์ ๋นํด ์ปดํ์ผ๋ ์คํฌ๋ฆฝํธ๋ pystone ํ ์คํธ์์ 335%์ ์ฑ๋ฅ ํฅ์์ ๋ณด์ฌ์ค๋๋ค. ํ๋ก์ ํธ ์ฝ๋๋ Apache ๋ผ์ด์ ์ค์ ๋ฐ๋ผ ๋ฐฐํฌ๋ฉ๋๋ค.
์ ๋ฒ์ ์ ๋ณ๊ฒฝ ์ฌํญ:
- ํจํค์ง ๊ตฌ์ฑ์ ๋ณ์๋ฅผ ์ฌ์ฉํ๋ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์ด ์ปดํ์ผ ํ์์ ์ค์น๋ ํจํค์ง์์ ๊ฐ์ ์ฟผ๋ฆฌํ๊ณ ํด๋น ๊ฐ์ ์ฌ์ฉํ์ฌ ๋ฐฑ์๋๋ฅผ ์ ์ํ ์ ์์ต๋๋ค. ๊ตฌ์ฑ์์ ๋ณ์๋ฅผ ์ง์ํ๋ฉด ์ด์ ์ ํ๋ฌ๊ทธ์ธ ์ฐ๊ฒฐ์ด ํ์ํ๋ ํ์ค ๋ฐฉ์์ผ๋ก ๋ง์ ์์ ์ ํด๊ฒฐํ ์ ์์ต๋๋ค.
- ๊ฐ ํจํค์ง์ ๊ตฌ์ฑ์ ์ํฅ์ ์ฃผ๋ ์ฌ์ฉ์ ์ ์ ๋งค๊ฐ๋ณ์์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค. ์๋ก์ด get_parameter ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ๋งค๊ฐ๋ณ์๋ฅผ ์ฝ์ ์ ์์ผ๋ฉฐ ๋ชจ๋์ ๋์์ ์ ํํ๋ ๋ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด Numba JIT ๋๋ Torch JIT๋ฅผ ๋นํ์ฑํํ๋๋ก ๋งค๊ฐ๋ณ์๋ฅผ ์ค์ ํ ์ ์์ต๋๋ค.
- ๊ตฌ์ฑ์ ์ ์๋์ด ์์ง๋ง onefile ๋ชจ๋์์ ๋น๋ํ ๋ ์คํ ํ์ผ๊ณผ ๋ณ๋๋ก ์ ๊ณต๋์ด์ผ ํ๋ ๋ฐ์ดํฐ ํ์ผ ํ ํ๋ฆฟ์ ์ง์ ํ๊ธฐ ์ํด "--include-onefile-external-data" ์ต์ ์ด ์ถ๊ฐ๋์์ต๋๋ค.
- GCC์์ ์ ์์ ์ธ ์คํ ์์(์ ์ด ํ๋ฆ) ์๋ฐ์ ์ฐจ๋จํ๋ CFI(์ ์ด ํ๋ฆ ๋ฌด๊ฒฐ์ฑ) ๋ณดํธ ๋ชจ๋๋ฅผ ์ค์ ํ๋ "--cf-protection" ์ต์ ์ด ์ถ๊ฐ๋์์ต๋๋ค.
- ํ๋ฌ๊ทธ์ธ yaml ํ์ผ์ ๊ฒฝ์ฐ ๋ฌด๊ฒฐ์ฑ ๊ฒ์ฌ๋ฅผ ์ํ ์ฒดํฌ์ฌ์ ์์ฑํ๋ ๊ธฐ๋ฅ์ด ๊ตฌํ๋์์ผ๋ฉฐ ํฅํ ๋ฐํ์ ํ์ธ์ ๊ตฌ์ฑํ๋ ๋ฐ ์ฌ์ฉํ ๊ณํ์ ๋๋ค.
- ์์ ์ ์ฌ์ฉํ๋ฉด ์ฌ๋ฌ ์ต์ ์ ์ค๋ก ๊ตฌ๋ถํ์ฌ ์ง์ ํ ์ ์์ต๋๋ค(์ ์ค์ด ๊ตฌ๋ถ ๊ธฐํธ๋ก ์ฌ์ฉ๋จ). ์: include-data-dir: | a=bc=d
- ๋ฃจํ ์ ํ์ ๋ํ ๋ถ์์ด ๊ตฌํ๋์์ผ๋ฉฐ, ์ด๋ ํฅํ ์ ํ์ ์ต์ ํ๋ฅผ ๊ตฌํํ๋ ๋ฐ ์ฌ์ฉ๋ ๊ฒ์ ๋๋ค.
- ๋น๊ณต์ ๋ฐ ์ด์ค์ผ์ดํ ๋ณ์ ์์ ์๋๋ฅผ ๋์ด๊ธฐ ์ํด ์ต์ ํ๊ฐ ์ถ๊ฐ๋์์ต๋๋ค.
- ์ํฐ ๋ธ๋กํธ ํ๋ฌ๊ทธ์ธ์ ๊ธฐ๋ฅ์ด ํ์ฅ๋์ด ์ด์ streamlit, torch, knetworkx, distribution, skimage, bitandbytes, tf_keras, pip, networkx ๋ฐ pywt ๋ผ์ด๋ธ๋ฌ๋ฆฌ(๊ธฐ๋ณธ์ ์ผ๋ก ๋ฐ์ธ๋ฉ)๋ฅผ ์ฌ์ฉํ ๋ ํจํท ์๋ฅผ ์ค์ด๋ ๋ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค. pytest, IPython, nose, triton์ ์ ์ธ๋๊ณ dask).
์ถ์ฒ : opennet.ru