Code about AI/Python

pip install -e์˜ ์˜๋ฏธ, ์•„์ง๋„ ํŒจํ‚ค์ง€ ๊ทธ๋ ‡๊ฒŒ ํŽธ์ง‘ํ•˜์„ธ์š”?

๋„๋น„(Doby) 2024. 7. 22. 14:49

๐Ÿค” Problem

๋ณธ ํฌ์ŠคํŒ…์— ๋“ค์–ด๊ฐ€๊ธฐ ์ „, ์œ ์˜์‚ฌํ•ญ์„ ์•Œ๋ ค๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์ด๋ฒˆ ํฌ์ŠคํŒ…์˜ ๋‚ด์šฉ์€ ์›๊ฒฉ ์ €์žฅ์†Œ์™€๋Š” ์•„๋ฌด๋Ÿฐ ๊ด€๋ จ์ด ์—†์Šต๋‹ˆ๋‹ค. ์กฐ๊ธˆ ํ—ท๊ฐˆ๋ฆด ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฏธ๋ฆฌ ์ ์–ด๋‘ก๋‹ˆ๋‹ค. ์ด ๊ธ€์—์„œ ๋งํ•˜๋Š” ํŒจํ‚ค์ง€(๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ)๋Š” '๊นƒ์—์„œ ํด๋ก ํ•œ ๋ ˆํฌ์ง€ํ† ๋ฆฌ', '์ž์ฒด ๊ฐœ๋ฐœ ํŒจํ‚ค์ง€' ๋“ฑ ๋กœ์ปฌ ์ƒ์— ์กด์žฌํ•˜๋Š” ํŒจํ‚ค์ง€(ํด๋”)๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. '๊นƒ์˜ ์›๊ฒฉ ์ €์žฅ์†Œ', 'PyPI'์™€ ๊ฐ™์€ ์›๊ฒฉ์ €์žฅ์†Œ์— ์œ„์น˜ํ•œ (์•„์ง ๋กœ์ปฌ์— ์„ค์น˜ํ•˜์ง€ ์•Š์€) ํŒจํ‚ค์ง€์™€๋Š” ๊ฑฐ๋ฆฌ๊ฐ€ ๋จผ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค.

 

์˜คํ”ˆ์†Œ์Šค๋ฅผ ํ•ธ๋“ค๋งํ•˜๋‹ค ๋ณด๋ฉด, ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋ฅผ cloneํ•˜๊ณ , ํ•ด๋‹น ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋กœ ์ด๋™ํ•˜์—ฌ requirements.txt์— ๋”ฐ๋ผ ์„ค์น˜ํ•˜๋ฉด์„œ ์•„๋ž˜์™€ ๊ฐ™์€ ๋ช…๋ น์–ด๋ฅผ ์ž์ฃผ ๋ณผ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

pip install -e .

option์„ ํ™•์ธํ•ด ๋ณด๋ฉด, 'ํ•ด๋‹น ๊ฒฝ๋กœ์— ์œ„์น˜ํ•œ ํŒจํ‚ค์ง€(๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ)๋ฅผ editableํ•˜๊ฒŒ ์„ค์น˜ํ•  ๊ฒƒ์ด๋‹ค.'๋ผ๋Š” ์˜๋ฏธ๋กœ ํ•ด์„๋ฉ๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ, ์˜์•„ํ•˜๊ฒŒ๋„ ๊ทธ๊ฑด -e ์˜ต์…˜ ์—†์ด๋„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ํ•ด๋‹น ํŒจํ‚ค์ง€๊ฐ€ ์„ค์น˜๋œ site-packages ๊ฒฝ๋กœ๋กœ ๊ฐ€์„œ ์ฝ”๋“œ๋ฅผ ์ฃผ์–ด์ง„ ์ž‘์—…์— ๋งž๊ฒŒ ์ˆ˜์ •ํ•˜๋ฉด ์ด๊ฒŒ editable ์•„๋‹๊นŒ์š”?

 

์•„๋‹ˆ๋ฉด, ๊ทธ ํŒจํ‚ค์ง€ ์ž์ฒด๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋Š” ํ”„๋กœ์ ํŠธ ํด๋”์— ํŒจํ‚ค์ง€๋ฅผ ๋„ฃ๊ณ  ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ์ฃ . (ํด๋”๊ฐ€ ๋งŽ์ด ์ง€์ €๋ถ„ํ•˜๊ฒ ์ง€๋งŒ๐Ÿ˜‚)

 

ํ•˜์ง€๋งŒ, ์œ„์—์„œ ๋งํ•œ ๊ฒƒ์ฒ˜๋Ÿผ ํŒจํ‚ค์ง€๋ฅผ ํŽธ์ง‘์„ ํ•œ๋‹ค๋Š” ๊ฒƒ์€ ํ•ด๋‹น ํŒจํ‚ค์ง€๋ฅผ ๋‚ด ํ”„๋กœ์ ํŠธ์— fitํ•˜๊ฒŒ ๋ณ€๊ฒฝํ•ด ์ฃผ๊ธฐ ์œ„ํ•ด์„œ ํŒจํ‚ค์ง€๋ฅผ ํŽธ์ง‘ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํŒจํ‚ค์ง€๋ผ๋Š” ๊ฒƒ์˜ ๋ณธ์งˆ์ ์ธ ๋ชฉ์ ์€ ์—ฌ๋Ÿฌ ํ”„๋กœ์ ํŠธ์—์„œ ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ๊ธฐ๋Šฅ๋“ค์„ ๊ตฌํ˜„ํ•ด ๋ชจ์•„๋‘” ๊ฒƒ์ž…๋‹ˆ๋‹ค. (ex: numpy, matplotlib ๋“ฑ)

์ฆ‰, ํŒจํ‚ค์ง€์—์„œ ๊ฐœ๋ฐœ๋˜๊ฑฐ๋‚˜, ํŽธ์ง‘๋˜๋Š” ์ฝ”๋“œ๋“ค์˜ ๋ชฉ์ ์€ ์กฐ๊ธˆ ๋” ๋ฒ”์šฉ์ ์ธ ์‚ฌ์šฉ์„ ํ•˜๊ธฐ ์œ„ํ•จ์ธ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด์— ๋”ฐ๋ผ ์ฃผ๋กœ ํŒจํ‚ค์ง€ ํŽธ์ง‘์ด๋ผ๋Š” ๊ฒƒ์€ ํŠน์ • ํ”„๋กœ์ ํŠธ์— ๊ฒจ๋ƒฅํ•œ ํŽธ์ง‘์„ ํ•˜๊ธฐ๋ณด๋‹ค ํŒจํ‚ค์ง€ ์ž์ฒด์˜ ๋” ๋ฒ”์šฉ์ ์ธ ๊ธฐ๋Šฅ๋“ค์„ ์ƒ๊ฐํ•ด์„œ ํŽธ์ง‘์ด ๋“ค์–ด๊ฐ€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ, ํŒจํ‚ค์ง€๋ฅผ ์—…๋ฐ์ดํŠธ ํ˜น์€ ํŽธ์ง‘์„ ํ•œ๋‹ค๋Š” ๊ฒƒ์€ ํ”„๋กœ์ ํŠธ๋ฅผ ๋„˜์–ด ๋” ํฐ ๊ทธ๋ฆผ์„ ๋ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

ํŒจํ‚ค์ง€๋ฅผ ํŽธ์ง‘ํ•œ๋‹ค๋Š” ๊ฒƒ์˜ ๋ชฉ์ ์„ ์•Œ๊ณ  ์žˆ๋Š” ์ƒํƒœ์—์„œ ์ด๋Ÿฐ ์ƒํ™ฉ์„ ๊ฐ€์ •ํ•ด ๋ด…์‹œ๋‹ค.

๋‚ด๊ฐ€ ๊ฐœ๋ฐœํ•œ ํŒจํ‚ค์ง€๊ฐ€ ๋‚ด๊ฐ€ ๋งŒ๋“ค๊ณ  ์žˆ๋Š” ์–ด๋–ค ํ”„๋กœ์ ํŠธ์—์„œ pip install <package ๊ฒฝ๋กœ>์„ ํ•ด์„œ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ํ–ˆ์„ ๋•Œ, ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๋‹ค ๋ณด๋‹ˆ ํŒจํ‚ค์ง€์— 'A๋ผ๋Š” ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜์—ˆ์œผ๋ฉด ์ข‹๊ฒ ๋‹ค'๋Š” ์ƒ๊ฐ์ด ๋“ญ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด, site-packages์— ์žˆ๋Š” ํŒจํ‚ค์ง€ ์ฝ”๋“œ๋ฅผ ํŽธ์ง‘ํ•˜์‹ค ๊ฑด๊ฐ€์š”? ์ข‹์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ, pip install <package ๊ฒฝ๋กœ>๊ฐ€ ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ–ˆ๋Š”์ง€ ์•ˆ๋‹ค๋ฉด ์ƒ๊ฐ์ด ๋‹ฌ๋ผ์งˆ ๊ฒ๋‹ˆ๋‹ค.

pip install <my_package path>

์œ„ ๊ทธ๋ฆผ์€ pip install <package ๊ฒฝ๋กœ>๋ฅผ ์‹คํ–‰ํ–ˆ์„ ๋•Œ, ํŒจํ‚ค์ง€๊ฐ€ ๊ฐ€์ƒ ํ™˜๊ฒฝ์— ์ƒ๊ธฐ๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆผ์ฒ˜๋Ÿผ ๊ฐ€์ƒ ํ™˜๊ฒฝ์— ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜๋ฉด, ํŒจํ‚ค์ง€์˜ ๋ณต์‚ฌ๋ณธ์ด ์ƒ๊น๋‹ˆ๋‹ค. ํŒจํ‚ค์ง€ ์ž์ฒด์˜ ์—…๋ฐ์ดํŠธ๋ฅผ ํ•ด์ฃผ๊ธฐ ์œ„ํ•ด ํŽธ์ง‘์„ ํ•˜๊ณ ์ž ํ–ˆ๋˜ ๊ฑด๋ฐ ๋ณต์‚ฌ๋ณธ ์ฝ”๋“œ๋ฅผ ํŽธ์ง‘ํ•œ๋‹ค๊ณ  ํ•ด์„œ ๋‹ฌ๋ผ์ง€๋Š” ๊ฒŒ ์žˆ๋‚˜์š”? ๋ฌผ๋ก , ํ”„๋กœ์ ํŠธ ๋‚ด์—์„œ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋Š” ํŒจํ‚ค์ง€๋Š” ์—…๋ฐ์ดํŠธ๋œ ๊ธฐ๋Šฅ๋“ค์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒ ์ง€๋งŒ, ์ด๊ฒƒ์€ ๋ณธ์งˆ์ ์ธ ๋ชฉ์ ์— ์–ด๊ธ‹๋‚ฉ๋‹ˆ๋‹ค. ํŒจํ‚ค์ง€ ์ž์ฒด์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๋ฅผ ํ•˜๊ณ  ์‹ถ์—ˆ์œผ๋‹ˆ๊นŒ์š”.

 

๊ทธ๋Ÿฌ๋ฉด, ์›๋ž˜์˜ ํŒจํ‚ค์ง€(๊ทธ๋ฆผ์—์„œ ์ฃผํ™ฉ์ƒ‰ ๋ฐ•์Šค)์˜ ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•ด ์ค˜์•ผ๊ฒ ๋„ค์š”. ํ”„๋กœ์ ํŠธ ๊ฐ€์ƒ ํ™˜๊ฒฝ์— ์žˆ๋Š” ํŒจํ‚ค์ง€ ๋ณต์‚ฌ๋ณธ์€ ์ง€์›Œ์ฃผ๊ณ  ์—…๋ฐ์ดํŠธ๋œ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์‹œ pip install <package ๊ฒฝ๋กœ>๋ฅผ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

๋˜ ํŒจํ‚ค์ง€์˜ ์—…๋ฐ์ดํŠธ๊ฐ€ ํ•„์š”ํ•˜๋‹ค๋ฉด์š”? ํ”„๋กœ์ ํŠธ๋„ ํ•˜๋ฉด์„œ ํŒจํ‚ค์ง€๋ฅผ ์ž์ฃผ ์—…๋ฐ์ดํŠธ ์‹œํ‚ฌ ์ˆ˜๋„ ์žˆ๋Š” ์ƒํ™ฉ์ด๋ผ๋ฉด ๋ฒˆ๊ฑฐ๋กญ์ง€ ์•Š์„๊นŒ์š”? ์ด๋Ÿฐ ์ƒํ™ฉ์„ ๊ณ ๋ คํ•˜์—ฌ ํŒจํ‚ค์ง€๋ฅผ ํ”„๋กœ์ ํŠธ ๊ฐ€์ƒ ํ™˜๊ฒฝ์— ์„ค์น˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ -e | --editable์ด๋ผ๋Š” ์˜ต์…˜์ด ๋“ฑ์žฅํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. 


๐Ÿ˜€ Solution

-e | --editable์ด๋ผ๋Š” ์˜ต์…˜์€ ํ”„๋กœ์ ํŠธ ๊ฐ€์ƒ ํ™˜๊ฒฝ์— ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•  ๋•Œ, site-packages๋กœ ํŒจํ‚ค์ง€์˜ ๋ณต์‚ฌ๋ณธ์„ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ํ•ด๋‹น ํŒจํ‚ค์ง€์˜ ์‹ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ์ƒ์„ฑ์‹œํ‚ต๋‹ˆ๋‹ค.

 

์‹ฌ๋ณผ๋ฆญ ๋งํฌ๋ž€ ํŒŒ์ผ ์‹œ์Šคํ…œ์—์„œ ํŠน์ • ํŒŒ์ผ ํ˜น์€ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ํŠน๋ณ„ํ•œ ์ข…๋ฅ˜์˜ ํŒŒ์ผ์ž…๋‹ˆ๋‹ค. ์ฆ‰, ํ•ด๋‹น ์˜ต์…˜์œผ๋กœ ํŒจํ‚ค์ง€๋ฅผ ๊ฐ€์ƒ ํ™˜๊ฒฝ์— ์„ค์น˜ํ•˜๋ฉด ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ํŒจํ‚ค์ง€์˜ ์œ„์น˜๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ํŒŒ์ผ์„ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์•„๋ž˜ ๊ทธ๋ฆผ์ฒ˜๋Ÿผ ํŒจํ‚ค์ง€์— ์ ‘๊ทผ์„ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜๋Š” ๊ฒƒ์ธ๋ฐ์š”.

pip install -e <my_package path>

๊ทธ๋ž˜์„œ, ํ”„๋กœ์ ํŠธ ๊ฐ€์ƒ ํ™˜๊ฒฝ์—์„œ sys.path(ํŒจํ‚ค์ง€ ์œ„์น˜๋ฅผ ํƒ์ƒ‰ํ•˜๋Š” ๊ฒฝ๋กœ)๋ฅผ ์ถœ๋ ฅํ•ด ๋ณด๋ฉด ํŒจํ‚ค์ง€๊ฐ€ ๋กœ์ปฌ์—์„œ ์œ„์น˜ํ•œ ๊ฒฝ๋กœ๊นŒ์ง€ ๋‹ด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. 

 

๊ฒฐ๋ก ์ ์œผ๋กœ, editable ์˜ต์…˜์„ ํ†ตํ•ด์„œ ํŽธ์ง‘ํ•  ํŒจํ‚ค์ง€๋ฅผ ๋ฒˆ๊ฑฐ๋กญ๊ฒŒ ์—ฌ๋Ÿฌ ๋ฒˆ ์„ค์น˜ํ•ด์•ผ ํ•˜๋Š” ์ƒํ™ฉ์„ ์—†์• ๊ฑฐ๋‚˜, ํŒจํ‚ค์ง€ ์ž์ฒด์— ๋Œ€ํ•œ ์ž‘์—…์„ ๋…๋ฆฝ์ ์ธ ๊ด€์ ์œผ๋กœ ๋ฐ”๋ผ๋ณผ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.


๐Ÿ˜€ Experiment

์ด๋Ÿฌํ•œ ์˜ต์…˜์˜ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•˜๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด์„œ Hugging Face์˜ transformers ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ git clone ํ•˜์—ฌ, r๊ฐ ๊ฐ€์ƒ ํ™˜๊ฒฝ์— ๋”ฐ๋ผ ์˜ต์…˜ ์œ ๋ฌด๋ฅผ ์ •ํ•˜์—ฌ ์„ค์น˜ํ•˜๊ณ , ๋‚ด๋ถ€์— ์ž„์˜์˜ ์Šคํฌ๋ฆฝํŠธ(doby_hello.py, doby_hi.py)๋ฅผ ๋งŒ๋“ค์–ด ํ™•์ธํ•œ ๊ฒฐ๊ณผ, -e ์˜ต์…˜์„ ์‚ฌ์šฉํ•ด์•ผ ํŒจํ‚ค์ง€๋ฅผ ๋…๋ฆฝ์ ์œผ๋กœ ํŽธ์ง‘ํ•ด๋„ ์‹ฌ๋ณผ๋ฆญ ๋งํฌ์— ์˜ํ•ด์„œ ํŒจํ‚ค์ง€ ์—…๋ฐ์ดํŠธ๊ฐ€ ์ถ”์ ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

pip install ๋กœ ํ•˜๊ณ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— doby_hello.py ์ถ”๊ฐ€ํ–ˆ์„ ๋•Œ (๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ณต์‚ฌ๋ณธ)
pip install -e ๋กœ ํ•˜๊ณ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— doby_hi.py ์ถ”๊ฐ€ํ–ˆ์„ ๋•Œ (๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‹ฌ๋ณผ๋ฆญ ๋งํฌ)


๐Ÿ˜€ Conclusion

์ด๋ฒˆ ๊ธ€์€ ๋‹ค์†Œ ์ ‘๊ทผ์ด ์–ด๋ ค์šธ ์ˆ˜๋„ ์žˆ์„ ๊ฑฐ๋ผ ์ƒ๊ฐ์ด ๋“ญ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ํŒจํ‚ค์ง€๋ฅผ ๊ฐ€์ƒ ํ™˜๊ฒฝ์— ์„ค์น˜ํ•  ๋•Œ๋ฅผ ์ƒ๊ฐํ•˜๋ฉด, ์›๊ฒฉ์— ์žˆ๋Š” ํŒจํ‚ค์ง€๋ฅผ ํ”„๋กœ์ ํŠธ ๊ฐ€์ƒ ํ™˜๊ฒฝ์—์„œ ์„ค์น˜ํ•˜๋Š” ์ƒํ™ฉ์€ ๋งŽ์ง€๋งŒ ๋กœ์ปฌ์— ์žˆ๋Š” ํŒจํ‚ค์ง€๋ฅผ ํ”„๋กœ์ ํŠธ ๊ฐ€์ƒ ํ™˜๊ฒฝ์— ์„ค์น˜ํ•˜๋Š” ์ƒํ™ฉ์€ ์ž˜ ์—†๊ธฐ ๋•Œ๋ฌธ์ธ๋ฐ์š”.

 

์™œ๋ƒํ•˜๋ฉด, ๊นƒํ—ˆ๋ธŒ์—์„œ ํด๋ก ํ•œ ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋„ ๋Œ€๋ถ€๋ถ„ ํŒจํ‚ค์ง€๋กœ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ , ํด๋ก ํ•œ ๋ ˆํฌ์ง€ํ† ๋ฆฌ ์ž์ฒด ๋‚ด๋ถ€์—์„œ ์ž‘์—…ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๊ธฐ ๋•Œ๋ฌธ์ด๋ผ ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. 

 

๊ทธ๋ž˜์„œ, ์‹ค์งˆ์ ์œผ๋กœ -e | --editable์ด๋ผ๋Š” ์˜ต์…˜์„ ์‚ฌ์šฉํ•  ์ผ์€ ์ž˜ ์—†๊ฒ ๋‹ค๋งŒ, ์ž์ฃผ ๋“ฑ์žฅํ•˜๋Š” ์˜ต์…˜์ด๋ผ ํ•œ ๋ฒˆ์ฏค ์ •๋ฆฌ๊ฐ€ ํ•„์š”ํ–ˆ์Šต๋‹ˆ๋‹ค.

 

์‚ฌ์‹ค ์ด ๊ธฐ๋Šฅ์€ ์˜ต์…˜ ์ž์ฒด๊ฐ€ ๊นƒํ—ˆ๋ธŒ์—์„œ ํด๋ก ํ•œ ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋ฅผ ํŒจํ‚ค์ง€์ฒ˜๋Ÿผ ๋‹ค๋ฃจ๋Š” ์‚ฌ๋žŒ์ด๊ฑฐ๋‚˜ ์ž์ฒด์ ์œผ๋กœ ํŒจํ‚ค์ง€(๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ)๋ฅผ ๊ฐœ๋ฐœํ•˜๊ณ  ์žˆ๋Š” ์‚ฌ๋žŒ์ด ์•„๋‹ˆ๋ผ๋ฉด, ์ด ์˜ต์…˜์ด ํ•„์š”ํ• ๊นŒ?๋ฅผ ๋งŽ์ด ์ƒ๊ฐํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. (์ฐ ๊ฐœ๋ฐœ์ž ๋ถ„๋“ค์ด ๋งŽ์ด ์“ฐ์ง€ ์•Š์„๊นŒ)

 

๋˜ํ•œ, ๋ณธ ๊ธ€์—์„œ๋Š” ๋‹ค๋ฃจ์ง€ ์•Š์ง€๋งŒ, ํ•ด๋‹น ์˜ต์…˜์˜ ๋Œ€์ƒ์ด ๋˜๋Š” ํŒจํ‚ค์ง€์—๋Š” setup.py๋‚˜ pyproject.toml๊ฐ™์€ ํŒŒ์ผ์ด ํ•„์š”ํ•œ๋ฐ ์ด๊ฑด ๋‚˜์ค‘์— ๋˜ ํ•œ ๋ฒˆ ํ•„์š”ํ•ด์ง„๋‹ค๋ฉด ๋‹ค๋ฃจ์–ด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

728x90