728x90

ERROR: file or directory not found

pytest ์‹œ import package์˜ path๊ฐ€ sys.path์— ๋“ฑ๋ก๋˜์ง€ ์•Š์•„ module์„ ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜ ์—†๋Š” ์ƒํƒœ์ด๋‹ค.

1) python์ด ์‹คํ–‰๊ณผ ๋™์‹œ์— env ์„ค์ • / mac (/.zshrc), Windows(/.bashrc)

# ๊ฒฝ๋กœ ๋“ฑ๋ก
export PYTHONPATH="/Users/code/~"


# ๋‹ค์ˆ˜์˜ ๊ฒฝ๋กœ ๋“ฑ๋ก
export PYTHONPATH="/Users/code/~:/Users/workspace/~"

2) python ํ™˜๊ฒฝ ๋ณ€์ˆ˜

PYTHONHOME

ํ‘œ์ค€ Python ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์œ„์น˜๋ฅผ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” prefix/lib/pythonversion ๋ฐ exec_prefix/lib/pythonversion์—์„œ ๊ฒ€์ƒ‰๋ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ prefix์™€ exec_prefix๋Š” ์„ค์น˜์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ๋””๋ ‰ํ† ๋ฆฌ์ž…๋‹ˆ๋‹ค. ๋‘˜ ๋‹ค /usr/local๋กœ ๊ธฐ๋ณธ ์„ค์ •๋ฉ๋‹ˆ๋‹ค. PYTHONHOME์ด ๋‹จ์ผ ๋””๋ ‰ํ† ๋ฆฌ๋กœ ์„ค์ •๋˜๋ฉด ๊ทธ ๊ฐ’์ด prefix์™€ exec_prefix๋ฅผ ๋ชจ๋‘ ๋Œ€์ฒดํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ๋‹ค๋ฅธ ๊ฐ’์œผ๋กœ ์ง€์ •ํ•˜๋ ค๋ฉด PYTHONHOME์„ prefix:exec_prefix๋กœ ์„ค์ •ํ•˜์‹ญ์‹œ์˜ค.

PYTHONPATH

PYTHONPATH์€ ๋ชจ๋“ˆ ํŒŒ์ผ์˜ ๊ธฐ๋ณธ ๊ฒ€์ƒ‰ ๊ฒฝ๋กœ๋ฅผ ํ™•์žฅํ•˜๋Š” ํ™˜๊ฒฝ ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค. ์ด ๋ณ€์ˆ˜๋Š” ์…ธ์˜ PATH์™€ ๋™์ผํ•œ ํ˜•์‹์œผ๋กœ ์ง€์ •๋ฉ๋‹ˆ๋‹ค. ์ฆ‰, ํ•˜๋‚˜ ์ด์ƒ์˜ ๋””๋ ‰ํ† ๋ฆฌ ๊ฒฝ๋กœ๋ฅผ os.pathsep (์˜ˆ: Unix์˜ ๊ฒฝ์šฐ ์ฝœ๋ก , Windows์˜ ๊ฒฝ์šฐ ์„ธ๋ฏธ์ฝœ๋ก )๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๋””๋ ‰ํ† ๋ฆฌ๋Š” ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์ธ ๋””๋ ‰ํ† ๋ฆฌ ์™ธ์—๋„, ๊ฐœ๋ณ„ PYTHONPATH ํ•ญ๋ชฉ์€ ์†Œ์Šค ๋˜๋Š” ์ปดํŒŒ์ผ๋œ ํ˜•ํƒœ์˜ ์ˆœ์ˆ˜ํ•œ Python ๋ชจ๋“ˆ์„ ํฌํ•จํ•˜๋Š” zip ํŒŒ์ผ์„ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํ™•์žฅ ๋ชจ๋“ˆ์€ zip ํŒŒ์ผ์—์„œ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ๊ฒ€์ƒ‰ ๊ฒฝ๋กœ๋Š” ์„ค์น˜์— ๋”ฐ๋ผ ๋‹ค๋ฅด์ง€๋งŒ ์ผ๋ฐ˜์ ์œผ๋กœ prefix/lib/pythonversion์œผ๋กœ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค (PYTHONHOME ์ฐธ์กฐ). ํ•ญ์ƒ PYTHONPATH์— ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค. ์ธํ„ฐํŽ˜์ด์Šค ์˜ต์…˜์—์„œ ์„ค๋ช…ํ•œ ๋Œ€๋กœ PYTHONPATH ์•ž์— ๊ฒ€์ƒ‰ ๊ฒฝ๋กœ์— ์ถ”๊ฐ€ ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์‚ฝ์ž…๋ฉ๋‹ˆ๋‹ค. ๊ฒ€์ƒ‰ ๊ฒฝ๋กœ๋Š” Python ํ”„๋กœ๊ทธ๋žจ ๋‚ด๋ถ€์—์„œ sys.path ๋ณ€์ˆ˜๋ฅผ ํ†ตํ•ด ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

PYTHONSAFEPATH

PYTHONSAFEPATH๊ฐ€ ๋น„์–ด ์žˆ์ง€ ์•Š์€ ๋ฌธ์ž์—ด๋กœ ์„ค์ •๋œ ๊ฒฝ์šฐ, ์ž ์žฌ์ ์œผ๋กœ ์•ˆ์ „ํ•˜์ง€ ์•Š์€ ๊ฒฝ๋กœ๊ฐ€ sys.path์— ์ถ”๊ฐ€๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ -P ์˜ต์…˜์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

๋ฒ„์ „ 3.11์—์„œ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

PYTHONPLATLIBDIR

PYTHONPLATLIBDIR๊ฐ€ ๋น„์–ด ์žˆ์ง€ ์•Š์€ ๋ฌธ์ž์—ด๋กœ ์„ค์ •๋œ ๊ฒฝ์šฐ, sys.platlibdir ๊ฐ’์„ ์žฌ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

๋ฒ„์ „ 3.9์—์„œ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

PYTHONSTARTUP

์ด ๋ณ€์ˆ˜๊ฐ€ ์ฝ๊ธฐ ๊ฐ€๋Šฅํ•œ ํŒŒ์ผ์˜ ์ด๋ฆ„์ธ ๊ฒฝ์šฐ, ํ•ด๋‹น ํŒŒ์ผ์— ์žˆ๋Š” Python ๋ช…๋ น์ด ๋Œ€ํ™”์‹ ๋ชจ๋“œ์—์„œ ์ฒซ ๋ฒˆ์งธ ํ”„๋กฌํ”„ํŠธ๊ฐ€ ํ‘œ์‹œ๋˜๊ธฐ ์ „์— ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ํŒŒ์ผ์€ ๋Œ€ํ™”์‹ ๋ช…๋ น์ด ์‹คํ–‰๋˜๋Š” ๋™์ผํ•œ ๋„ค์ž„์ŠคํŽ˜์ด์Šค์—์„œ ์‹คํ–‰๋˜๋ฏ€๋กœ ํ•ด๋‹น ํŒŒ์ผ์—์„œ ์ •์˜๋˜๊ฑฐ๋‚˜ ๊ฐ€์ ธ์˜จ ๊ฐ์ฒด๋ฅผ ๋Œ€ํ™”์‹ ์„ธ์…˜์—์„œ ๋ณ€๊ฒฝ ์—†์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์ด ํŒŒ์ผ์—์„œ sys.ps1๊ณผ sys.ps2 ํ”„๋กฌํ”„ํŠธ ๋ฐ sys.interactivehook ํ›„ํฌ๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹œ์ž‘ ์‹œ filename์„ ์ธ์ˆ˜๋กœ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ์‚ฌ ์ด๋ฒคํŠธ cpython.run_startup๋ฅผ ๋ฐœ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค.

PYTHONOPTIMIZE

์ด ๋ณ€์ˆ˜๊ฐ€ ๋น„์–ด ์žˆ์ง€ ์•Š์€ ๋ฌธ์ž์—ด๋กœ ์„ค์ •๋œ ๊ฒฝ์šฐ, -O ์˜ต์…˜์„ ์ง€์ •ํ•œ ๊ฒƒ๊ณผ ๋™์ผํ•ฉ๋‹ˆ๋‹ค. ์ •์ˆ˜๋กœ ์„ค์ •๋œ ๊ฒฝ์šฐ, -O๋ฅผ ์—ฌ๋Ÿฌ ๋ฒˆ ์ง€์ •ํ•œ ๊ฒƒ๊ณผ ๋™์ผํ•ฉ๋‹ˆ๋‹ค.

PYTHONBREAKPOINT

์ด ๋ณ€์ˆ˜๊ฐ€ ์„ค์ •๋œ ๊ฒฝ์šฐ, ์  ํ‘œ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ ํ˜ธ์ถœ ๊ฐ€๋Šฅํ•œ ๊ฐ์ฒด์˜ ์ด๋ฆ„์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ํ˜ธ์ถœ ๊ฐ€๋Šฅํ•œ ๊ฐ์ฒด๋ฅผ ํฌํ•จํ•˜๋Š” ๋ชจ๋“ˆ์€ ๊ฐ€์ ธ์˜จ ๋‹ค์Œ, sys.breakpointhook()์˜ ๊ธฐ๋ณธ ๊ตฌํ˜„์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ์ด ๊ธฐ๋ณธ ๊ตฌํ˜„์€ built-in breakpoint()์— ์˜ํ•ด ํ˜ธ์ถœ๋ฉ๋‹ˆ๋‹ค. ์„ค์ •๋˜์ง€ ์•Š์•˜๊ฑฐ๋‚˜ ๋นˆ ๋ฌธ์ž์—ด๋กœ ์„ค์ •๋œ ๊ฒฝ์šฐ, ๊ฐ’ "pdb.set_trace"์™€ ๋™์ผํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ณ€์ˆ˜๋ฅผ ๋ฌธ์ž์—ด "0"์œผ๋กœ ์„ค์ •ํ•˜๋ฉด sys.breakpointhook()์˜ ๊ธฐ๋ณธ ๊ตฌํ˜„์ด ์•„๋ฌด ์ž‘์—…๋„ ํ•˜์ง€ ์•Š๊ณ  ์ฆ‰์‹œ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฒƒ๊ณผ ๋™์ผํ•ฉ๋‹ˆ๋‹ค.

๋ฒ„์ „ 3.7์—์„œ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

PYTHONDEBUG

์ด ๋ณ€์ˆ˜๊ฐ€ ๋น„์–ด ์žˆ์ง€ ์•Š์€ ๋ฌธ์ž์—ด๋กœ ์„ค์ •๋œ ๊ฒฝ์šฐ, -d ์˜ต์…˜์„ ์ง€์ •ํ•œ ๊ฒƒ๊ณผ ๋™์ผํ•ฉ๋‹ˆ๋‹ค. ์ •์ˆ˜๋กœ ์„ค์ •๋œ ๊ฒฝ์šฐ, -d๋ฅผ ์—ฌ๋Ÿฌ ๋ฒˆ ์ง€์ •ํ•œ ๊ฒƒ๊ณผ ๋™์ผํ•ฉ๋‹ˆ๋‹ค. ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” ๋””๋ฒ„๊ทธ ๋นŒ๋“œ์˜ Python์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค.

PYTHONINSPECT

์ด ๋ณ€์ˆ˜๊ฐ€ ๋น„์–ด ์žˆ์ง€ ์•Š์€ ๋ฌธ์ž์—ด๋กœ ์„ค์ •๋œ ๊ฒฝ์šฐ, -i ์˜ต์…˜์„ ์ง€์ •ํ•œ ๊ฒƒ๊ณผ ๋™์ผํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ณ€์ˆ˜๋Š” os.environ์„ ์‚ฌ์šฉํ•˜์—ฌ Python ์ฝ”๋“œ์—์„œ๋„ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ํ”„๋กœ๊ทธ๋žจ ์ข…๋ฃŒ์‹œ ๊ฒ€์‚ฌ ๋ชจ๋“œ๋ฅผ ๊ฐ•์ œ๋กœ ์„ค์ •ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

PYTHONUNBUFFERED

์ด ๋ณ€์ˆ˜๊ฐ€ ๋น„์–ด ์žˆ์ง€ ์•Š์€ ๋ฌธ์ž์—ด๋กœ ์„ค์ •๋œ ๊ฒฝ์šฐ, -u ์˜ต์…˜์„ ์ง€์ •ํ•œ ๊ฒƒ๊ณผ ๋™์ผํ•ฉ๋‹ˆ๋‹ค.

PYTHONVERBOSE

์ด ๋ณ€์ˆ˜๊ฐ€ ๋น„์–ด ์žˆ์ง€ ์•Š์€ ๋ฌธ์ž์—ด๋กœ ์„ค์ •๋œ ๊ฒฝ์šฐ, -v ์˜ต์…˜์„ ์ง€์ •ํ•œ ๊ฒƒ๊ณผ ๋™์ผํ•ฉ๋‹ˆ๋‹ค. ์ •์ˆ˜๋กœ ์„ค์ •๋œ ๊ฒฝ์šฐ, -v๋ฅผ ์—ฌ๋Ÿฌ ๋ฒˆ ์ง€์ •ํ•œ ๊ฒƒ๊ณผ ๋™์ผํ•ฉ๋‹ˆ๋‹ค.

PYTHONCASEOK

์ด ๋ณ€์ˆ˜๊ฐ€ ์„ค์ •๋˜๋ฉด, Python์€ import ๋ฌธ์—์„œ ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๋ฌด์‹œํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ธฐ๋Šฅ์€ Windows์™€ macOS์—์„œ๋งŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

PYTHONDONTWRITEBYTECODE

์ด ๋ณ€์ˆ˜๊ฐ€ ๋น„์–ด ์žˆ์ง€ ์•Š์€ ๋ฌธ์ž์—ด๋กœ ์„ค์ •๋œ ๊ฒฝ์šฐ, ์†Œ์Šค ๋ชจ๋“ˆ์˜ ๊ฐ€์ ธ์˜ค๊ธฐ ์‹œ .pyc ํŒŒ์ผ์„ ์ž‘์„ฑํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๋Š” -B ์˜ต์…˜์„ ์ง€์ •ํ•œ ๊ฒƒ๊ณผ ๋™์ผํ•ฉ๋‹ˆ๋‹ค.

PYTHONPYCACHEPREFIX

์ด ๋ณ€์ˆ˜๊ฐ€ ์„ค์ •๋œ ๊ฒฝ์šฐ, Python์€ ์†Œ์Šค ํŠธ๋ฆฌ ๋‚ด์˜ pycache ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์•„๋‹Œ ํ•ด๋‹น ๊ฒฝ๋กœ์˜ ๋ฏธ๋Ÿฌ ๋””๋ ‰ํ† ๋ฆฌ ํŠธ๋ฆฌ์— .pyc ํŒŒ์ผ์„ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” -X pycache_prefix=PATH ์˜ต์…˜์„ ์ง€์ •ํ•œ ๊ฒƒ๊ณผ ๋™์ผํ•ฉ๋‹ˆ๋‹ค.

๋ฒ„์ „ 3.8์—์„œ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

PYTHONHASHSEED

์ด ๋ณ€์ˆ˜๊ฐ€ ์„ค์ •๋˜์ง€ ์•Š์•˜๊ฑฐ๋‚˜ random์œผ๋กœ ์„ค์ •๋œ ๊ฒฝ์šฐ, str ๋ฐ bytes ๊ฐ์ฒด์˜ ํ•ด์‹œ์— ๋ฌด์ž‘์œ„ ๊ฐ’์„ ์‹œ๋“œ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. PYTHONHASHSEED๊ฐ€ ์ •์ˆ˜ ๊ฐ’์œผ๋กœ ์„ค์ •๋œ ๊ฒฝ์šฐ, ํ•ด์‹œ ๋ฌด์ž‘์œ„ํ™” ๋Œ€์ƒ์ธ ์œ ํ˜•์˜ hash()๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋  ๊ณ ์ • ์‹œ๋“œ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด ๋ณ€์ˆ˜์˜ ๋ชฉ์ ์€ ํ•ด์‹œ๋ฅผ ๋ฐ˜๋ณต ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ธํ„ฐํ”„๋ฆฌํ„ฐ ์ž์ฒด์˜ ์ž์ฒด ํ…Œ์ŠคํŠธ ๋˜๋Š” ํŒŒ์ด์ฌ ํ”„๋กœ์„ธ์Šค ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ํ•ด์‹œ ๊ฐ’์„ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ •์ˆ˜๋Š” [0, 4294967295] ๋ฒ”์œ„์˜ 10์ง„์ˆ˜ ์ˆซ์ž์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ’ 0์„ ์ง€์ •ํ•˜๋ฉด ํ•ด์‹œ ๋ฌด์ž‘์œ„ํ™”๊ฐ€ ๋น„ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.

๋ฒ„์ „ 3.2.3์—์„œ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

PYTHONINTMAXSTRDIGITS

์ด ๋ณ€์ˆ˜๊ฐ€ ์ •์ˆ˜๋กœ ์„ค์ •๋œ ๊ฒฝ์šฐ, ํ•ด์„๊ธฐ์˜ ์ „์—ญ ์ •์ˆ˜ ๋ฌธ์ž์—ด ๋ณ€ํ™˜ ๊ธธ์ด ์ œํ•œ์„ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

๋ฒ„์ „ 3.11์—์„œ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

PYTHONIOENCODING

์ด ๋ณ€์ˆ˜๊ฐ€ ์ธํ„ฐํ”„๋ฆฌํ„ฐ๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์ „์— ์„ค์ •๋œ ๊ฒฝ์šฐ, stdin/stdout/stderr์— ์‚ฌ์šฉ๋˜๋Š” ์ธ์ฝ”๋”ฉ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ตฌ๋ฌธ์€ encodingname:errorhandler ํ˜•์‹์ž…๋‹ˆ๋‹ค. encodingname ๋ฐ :errorhandler ๋ถ€๋ถ„์€ ์„ ํƒ์ ์ด๋ฉฐ, str.encode()์—์„œ์™€ ๊ฐ™์€ ์˜๋ฏธ๋ฅผ ๊ฐ€์ง‘๋‹ˆ๋‹ค. stderr์˜ ๊ฒฝ์šฐ :errorhandler ๋ถ€๋ถ„์€ ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค. ํ•ธ๋“ค๋Ÿฌ๋Š” ํ•ญ์ƒ 'backslashreplace'๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

๋ฒ„์ „ 3.4์—์„œ ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. encodingname ๋ถ€๋ถ„์ด ์ด์ œ ์„ ํƒ์ ์ž…๋‹ˆ๋‹ค.## Python ํ™˜๊ฒฝ ๋ณ€์ˆ˜

PYTHONNOUSERSITE

  • ์ด ๊ฐ’์ด ์„ค์ •๋˜์–ด ์žˆ์œผ๋ฉด, Python์€ ์‚ฌ์šฉ์ž site-packages ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ sys.path์— ์ถ”๊ฐ€ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

PYTHONUSERBASE

  • ์‚ฌ์šฉ์ž base ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ •์˜ํ•˜๋ฉฐ, ์ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž site-packages ๋””๋ ‰ํ† ๋ฆฌ์˜ ๊ฒฝ๋กœ์™€ python -m pip install --user์˜ ์„ค์น˜ ๊ฒฝ๋กœ๋ฅผ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.

PYTHONEXECUTABLE

  • ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๊ฐ€ ์„ค์ •๋˜์–ด ์žˆ์œผ๋ฉด, sys.argv[0]์€ C ๋Ÿฐํƒ€์ž„์„ ํ†ตํ•ด ์–ป์€ ๊ฐ’ ๋Œ€์‹  ์ด ๊ฐ’์œผ๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค. macOS์—์„œ๋งŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

PYTHONWARNINGS

  • ์ด๋Š” -W ์˜ต์…˜๊ณผ ๋™๋“ฑํ•ฉ๋‹ˆ๋‹ค. ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„๋œ ๋ฌธ์ž์—ด๋กœ ์„ค์ •๋˜๋ฉด, -W๋ฅผ ์—ฌ๋Ÿฌ ๋ฒˆ ์ง€์ •ํ•œ ๊ฒƒ๊ณผ ๋™์ผํ•˜๋ฉฐ, ๋ชฉ๋ก์—์„œ ๋‚˜์ค‘์— ๋‚˜์˜ค๋Š” ํ•„ํ„ฐ๊ฐ€ ๋จผ์ € ๋‚˜์˜ค๋Š” ๊ฒƒ๋ณด๋‹ค ์šฐ์„ ํ•ฉ๋‹ˆ๋‹ค.
  • ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ์„ค์ •์€ ํŠน์ • ๋™์ž‘์„ ํ”„๋กœ์„ธ์Šค์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๋ชจ๋“  ๊ฒฝ๊ณ ์— ์กฐ๊ฑด์„ ์ง€์ •ํ•˜์ง€ ์•Š๊ณ  ์ ์šฉํ•ฉ๋‹ˆ๋‹ค:
    • PYTHONWARNINGS=default: ํ˜ธ์ถœ ์œ„์น˜ ๋‹น ํ•œ ๋ฒˆ ๊ฒฝ๊ณ 
    • PYTHONWARNINGS=error: ์˜ˆ์™ธ๋กœ ๋ณ€ํ™˜
    • PYTHONWARNINGS=always: ํ•ญ์ƒ ๊ฒฝ๊ณ 
    • PYTHONWARNINGS=module: ํ˜ธ์ถœํ•˜๋Š” ๋ชจ๋“ˆ ๋‹น ํ•œ ๋ฒˆ ๊ฒฝ๊ณ 
    • PYTHONWARNINGS=once: Python ํ”„๋กœ์„ธ์Šค ๋‹น ํ•œ ๋ฒˆ ๊ฒฝ๊ณ 
    • PYTHONWARNINGS=ignore: ๊ฒฝ๊ณ ํ•˜์ง€ ์•Š์Œ

PYTHONFAULTHANDLER

  • ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๊ฐ€ ๋น„์–ด ์žˆ์ง€ ์•Š์€ ๋ฌธ์ž์—ด๋กœ ์„ค์ •๋˜์–ด ์žˆ์œผ๋ฉด, ์‹œ์ž‘์‹œ faulthandler.enable()์ด ํ˜ธ์ถœ๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” SIGSEGV, SIGFPE, SIGABRT, SIGBUS ๋ฐ SIGILL ์‹ ํ˜ธ์— ๋Œ€ํ•œ Python ์ถ”์  ์ •๋ณด๋ฅผ ๋คํ”„ํ•˜๊ธฐ ์œ„ํ•œ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

PYTHONTRACEMALLOC

  • ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๊ฐ€ ๋น„์–ด ์žˆ์ง€ ์•Š์€ ๋ฌธ์ž์—ด๋กœ ์„ค์ •๋˜์–ด ์žˆ์œผ๋ฉด, tracemalloc ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•˜์—ฌ Python ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น์„ ์ถ”์ ํ•ฉ๋‹ˆ๋‹ค. ๋ณ€์ˆ˜์˜ ๊ฐ’์€ ์ถ”์ ์˜ traceback์— ์ €์žฅ๋œ ํ”„๋ ˆ์ž„์˜ ์ตœ๋Œ€ ์ˆ˜์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, PYTHONTRACEMALLOC=1์€ ๊ฐ€์žฅ ์ตœ๊ทผ์˜ ํ”„๋ ˆ์ž„๋งŒ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

PYTHONPROFILEIMPORTTIME

  • ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๊ฐ€ ๋น„์–ด ์žˆ์ง€ ์•Š์€ ๋ฌธ์ž์—ด๋กœ ์„ค์ •๋˜์–ด ์žˆ์œผ๋ฉด, Python์€ ๊ฐ import์— ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

PYTHONASYNCIODEBUG

  • ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๊ฐ€ ๋น„์–ด ์žˆ์ง€ ์•Š์€ ๋ฌธ์ž์—ด๋กœ ์„ค์ •๋˜์–ด ์žˆ์œผ๋ฉด, asyncio ๋ชจ๋“ˆ์˜ ๋””๋ฒ„๊ทธ ๋ชจ๋“œ๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

PYTHONMALLOC

  • Python ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น์ž ๋ฐ/๋˜๋Š” ๋””๋ฒ„๊ทธ ํ›…์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. Python์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น์ž ํŒจ๋ฐ€๋ฆฌ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
    • default: ๊ธฐ๋ณธ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น์ž ์‚ฌ์šฉ
    • malloc: ๋ชจ๋“  ๋„๋ฉ”์ธ(PYMEM_DOMAIN_RAW, PYMEM_DOMAIN_MEM, PYMEM_DOMAIN_OBJ)์— ๋Œ€ํ•ด C ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ malloc() ํ•จ์ˆ˜ ์‚ฌ์šฉ
    • pymalloc: PYMEM_DOMAIN_MEM ๋ฐ PYMEM_DOMAIN_OBJ ๋„๋ฉ”์ธ์— ๋Œ€ํ•ด pymalloc ํ• ๋‹น์ž ์‚ฌ์šฉ, PYMEM_DOMAIN_RAW ๋„๋ฉ”์ธ์— ๋Œ€ํ•ด malloc() ํ•จ์ˆ˜ ์‚ฌ์šฉ
  • ๋””๋ฒ„๊ทธ ํ›… ์„ค์น˜:
    • debug: ๊ธฐ๋ณธ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น์ž ์œ„์— ๋””๋ฒ„๊ทธ ํ›… ์„ค์น˜
    • malloc_debug: malloc๊ณผ ๋™์ผํ•˜์ง€๋งŒ ๋””๋ฒ„๊ทธ ํ›…๋„ ์„ค์น˜
    • pymalloc_debug: pymalloc๊ณผ ๋™์ผํ•˜์ง€๋งŒ ๋””๋ฒ„๊ทธ ํ›…๋„ ์„ค์น˜

PYTHONMALLOCSTATS

  • ๋น„์–ด ์žˆ์ง€ ์•Š์€ ๋ฌธ์ž์—ด๋กœ ์„ค์ •๋˜๋ฉด, Python์€ ์ƒˆ๋กœ์šด pymalloc ๊ฐ์ฒด ์˜์—ญ์ด ์ƒ์„ฑ๋  ๋•Œ๋งˆ๋‹ค pymalloc ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น๊ธฐ์˜ ํ†ต๊ณ„๋ฅผ ์ธ์‡„ํ•˜๊ณ  ์ข…๋ฃŒ ์‹œ ์ธ์‡„ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ณ€์ˆ˜๋Š” PYTHONMALLOC ํ™˜๊ฒฝ ๋ณ€์ˆ˜๊ฐ€ C ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ malloc() ํ• ๋‹น๊ธฐ๋ฅผ ๊ฐ•์ œ๋กœ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ pymalloc ์ง€์› ์—†์ด Python์ด ๊ตฌ์„ฑ๋œ ๊ฒฝ์šฐ ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค.

PYTHONLEGACYWINDOWSFSENCODING

  • ๋น„์–ด ์žˆ์ง€ ์•Š์€ ๋ฌธ์ž์—ด๋กœ ์„ค์ •๋˜๋ฉด, ๊ธฐ๋ณธ ํŒŒ์ผ ์‹œ์Šคํ…œ ์ธ์ฝ”๋”ฉ๊ณผ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ๊ธฐ ๋ชจ๋“œ๊ฐ€ 'mbcs' ๋ฐ 'replace'๋กœ ์ด์ „ ๋ฒ„์ „์ธ 3.6 ์ด์ „์˜ ๊ฐ’์œผ๋กœ ๋ณต์›๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์ƒˆ๋กœ์šด ๊ธฐ๋ณธ๊ฐ’์ธ 'utf-8'๊ณผ 'surrogatepass'๊ฐ€ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

PYTHONLEGACYWINDOWSSTDIO

  • ๋น„์–ด ์žˆ์ง€ ์•Š์€ ๋ฌธ์ž์—ด๋กœ ์„ค์ •๋˜๋ฉด, ์ƒˆ๋กœ์šด ์ฝ˜์†” ๋ฆฌ๋”์™€ ์ž‘์„ฑ๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๋Š” Unicode ๋ฌธ์ž๋ฅผ utf-8 ๋Œ€์‹  ํ™œ์„ฑ ์ฝ˜์†” ์ฝ”๋“œ ํŽ˜์ด์ง€์— ๋”ฐ๋ผ ์ธ์ฝ”๋”ฉํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ํ‘œ์ค€ ์ŠคํŠธ๋ฆผ์ด ์ฝ˜์†” ๋ฒ„ํผ๊ฐ€ ์•„๋‹Œ ํŒŒ์ผ์ด๋‚˜ ํŒŒ์ดํ”„๋กœ ๋ฆฌ๋””๋ ‰์…˜๋œ ๊ฒฝ์šฐ ์ด ๋ณ€์ˆ˜๋Š” ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค.

PYTHONCOERCECLOCALE

  • ๋น„์–ด ์žˆ์ง€ ์•Š์€ ๋ฌธ์ž์—ด๋กœ ์„ค์ •๋˜๋ฉด, Python์€ C ์–ธ์–ด ํ™˜๊ฒฝ๋ณ€์ˆ˜ LC_CTYPE์„ ์ฟผ๋ฆฌํ•˜๊ณ , ๊ทธ ๊ฐ’์ด "UTF-8" ๋˜๋Š” "UTF8"๋กœ ์‹œ์ž‘ํ•˜์ง€ ์•Š์œผ๋ฉด, LC_CTYPE๊ฐ€ "C"๋กœ ์„ค์ •๋˜์—ˆ๊ฑฐ๋‚˜ ์„ค์ •๋˜์ง€ ์•Š์€ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ, Python์€ ํ™˜๊ฒฝ๋ณ€์ˆ˜ LC_CTYPE์„ "C.UTF-8"๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.### ํ™˜๊ฒฝ ๋ณ€์ˆ˜

ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Python ์ธํ„ฐํ”„๋ฆฌํ„ฐ์˜ ๋™์ž‘์„ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

PYTHONCOERCECLOCALE

  • ๊ฐ’์ด 0์œผ๋กœ ์„ค์ •๋˜๋ฉด, Python CLI ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์€ ASCII ๊ธฐ๋ฐ˜ C ๋ฐ POSIX ๋กœ์ผ€์ผ์„ ๋” ๋Šฅ๋ ฅ์žˆ๋Š” UTF-8 ๊ธฐ๋ฐ˜ ๋Œ€์ฒด๋กœ ๋ณ€ํ™˜ํ•˜์ง€ ์•Š๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
  • ์ด ๋ณ€์ˆ˜๊ฐ€ ์„ค์ •๋˜์ง€ ์•Š์•˜๊ฑฐ๋‚˜ 0์ด ์•„๋‹Œ ๊ฐ’์œผ๋กœ ์„ค์ •๋˜์ง€ ์•Š์•˜์œผ๋ฉฐ, LC_CTYPE ๋ฒ”์ฃผ์— ๋Œ€ํ•œ ํ˜„์žฌ ๋กœ์บ˜์ด ๊ธฐ๋ณธ C ๋กœ์บ˜์ด๊ฑฐ๋‚˜ ๋ช…์‹œ ์ ์œผ๋กœ ASCII ๊ธฐ๋ฐ˜ POSIX ๋กœ์บ˜์ด ์•„๋‹Œ ๊ฒฝ์šฐ, Python CLI๋Š” ์ธํ„ฐํ”„๋ฆฌํ„ฐ ๋Ÿฐํƒ€์ž„์„ ๋กœ๋“œํ•˜๊ธฐ ์ „์— ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋กœ์บ˜์„ LC_CTYPE ๋ฒ”์ฃผ์— ๋Œ€ํ•ด ์„ค์ •ํ•˜๋ ค๊ณ  ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค.
    • C.UTF-8
    • C.utf8
    • UTF-8
  • ์ด๋Ÿฌํ•œ ๋กœ์บ˜ ๋ฒ”์ฃผ ์ค‘ ํ•˜๋‚˜๋ฅผ ์„ค์ •ํ•˜๋ฉด, ํ˜„์žฌ ํ”„๋กœ์„ธ์Šค ํ™˜๊ฒฝ์—์„œ๋„ LC_CTYPE ํ™˜๊ฒฝ ๋ณ€์ˆ˜๊ฐ€ ํ•ด๋‹น ๊ฐ’์œผ๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์ธํ„ฐํ”„๋ฆฌํ„ฐ ์ž์ฒด๋ฟ๋งŒ ์•„๋‹ˆ๋ผ GNU readline ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ๊ฐ™์€ ๋™์ผํ•œ ํ”„๋กœ์„ธ์Šค์—์„œ ์‹คํ–‰๋˜๋Š” ๋‹ค๋ฅธ ๋กœ์บ˜ ์ธ์‹ ๊ตฌ์„ฑ ์š”์†Œ ๋ฐ Python์˜ locale.getdefaultlocale()๊ณผ ๊ฐ™์€ ํ™˜๊ฒฝ์„ ์ฟผ๋ฆฌํ•˜๋Š” ์ž‘์—…์—์„œ๋„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ด๋Ÿฌํ•œ ๋กœ์บ˜ (๋ช…์‹œ ์ ์œผ๋กœ ๋˜๋Š” ์œ„์˜ ์•”์‹œ ์  ๋กœ์บ˜ ๊ฐ•์ œ ๋ณ€ํ™˜์„ ํ†ตํ•ด)์„ ๊ตฌ์„ฑํ•˜๋Š” ๊ฒƒ์€ sys.stdin๊ณผ sys.stdout์˜ surrogateescape ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ๊ธฐ๋ฅผ ์ž๋™์œผ๋กœ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค (sys.stderr๋Š” ๋‹ค๋ฅธ ๋กœ์บ˜๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ backslashreplace๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค). ์ด ์ŠคํŠธ๋ฆผ ์ฒ˜๋ฆฌ ๋™์ž‘์€ PYTHONIOENCODING์„ ์‚ฌ์šฉํ•˜์—ฌ ์žฌ์ •์˜ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋””๋ฒ„๊น… ๋ชฉ์ ์œผ๋กœ PYTHONCOERCECLOCALE=warn์„ ์„ค์ •ํ•˜๋ฉด Python์€ ๋กœ์บ˜ ๊ฐ•์ œ ๋ณ€ํ™˜์„ ํ™œ์„ฑํ™”ํ•˜๊ฑฐ๋‚˜ Python ๋Ÿฐํƒ€์ž„์ด ์ดˆ๊ธฐํ™” ๋  ๋•Œ ๊ฐ•์ œ๋กœ ๋ณ€ํ™˜์„ ํ™œ์„ฑํ™”ํ•˜๋Š” ๊ฒฝ์šฐ stderr์— ๊ฒฝ๊ณ  ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐœ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค.
  • ๋กœ์บ˜ ๊ฐ•์ œ ๋ณ€ํ™˜์ด ๋น„ํ™œ์„ฑํ™”๋˜์—ˆ๊ฑฐ๋‚˜ ์ ์ ˆํ•œ ๋Œ€์ƒ ๋กœ์บ˜์ด ์ฐพ์„ ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ์—๋„, ๊ธฐ์กด์˜ ASCII ๊ธฐ๋ฐ˜ ๋กœ์บ˜์ด ์•„๋‹Œ ๋กœ์บ˜์ด ์‚ฌ์šฉ๋˜๋Š” ๊ฒฝ์šฐ PYTHONUTF8๋Š” ์—ฌ์ „ํžˆ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. ์‹œ์Šคํ…œ ์ธํ„ฐํŽ˜์ด์Šค์— UTF-8 ๋Œ€์‹  ASCII๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ์„ ๋ชจ๋‘ ๋น„ํ™œ์„ฑํ™”ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

PYTHONDEVMODE

  • ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜์— ๋น„์–ด ์žˆ์ง€ ์•Š์€ ๋ฌธ์ž์—ด์„ ์„ค์ •ํ•˜๋ฉด Python ๊ฐœ๋ฐœ ๋ชจ๋“œ๊ฐ€ ํ™œ์„ฑํ™”๋˜์–ด ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์ง€ ์•Š๋Š” ์ถ”๊ฐ€ ๋Ÿฐํƒ€์ž„ ๊ฒ€์‚ฌ๊ฐ€ ๋„์ž…๋ฉ๋‹ˆ๋‹ค.
  • ์ด๋Š” -X dev ์˜ต์…˜์„ ์„ค์ •ํ•˜๋Š” ๊ฒƒ๊ณผ ๋™์ผํ•ฉ๋‹ˆ๋‹ค.

PYTHONUTF8

  • ๊ฐ’์ด 1๋กœ ์„ค์ •๋˜๋ฉด, Python UTF-8 ๋ชจ๋“œ๊ฐ€ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.
  • ๊ฐ’์ด 0์œผ๋กœ ์„ค์ •๋˜๋ฉด, Python UTF-8 ๋ชจ๋“œ๊ฐ€ ๋น„ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.
  • ๋‹ค๋ฅธ ๋น„์–ด ์žˆ์ง€ ์•Š์€ ๋ฌธ์ž์—ด์„ ์„ค์ •ํ•˜๋ฉด, ์ธํ„ฐํ”„๋ฆฌํ„ฐ ์ดˆ๊ธฐํ™” ์ค‘์— ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

PYTHONWARNDEFAULTENCODING

  • ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜์— ๋น„์–ด ์žˆ์ง€ ์•Š์€ ๋ฌธ์ž์—ด์„ ์„ค์ •ํ•˜๋ฉด, ๋กœ์บ˜๋ณ„ ๊ธฐ๋ณธ ์ธ์ฝ”๋”ฉ์ด ์‚ฌ์šฉ๋  ๋•Œ EncodingWarning์„ ๋ฐœ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค.
  • ์ž์„ธํ•œ ๋‚ด์šฉ์€ Opt-in EncodingWarning์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

PYTHONNODEBUGRANGES

  • ์ด ๋ณ€์ˆ˜๊ฐ€ ์„ค์ •๋˜๋ฉด, ์ฝ”๋“œ ๊ฐ์ฒด์˜ ๊ฐ ๋ช…๋ น๋ฌธ์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ์œ„์น˜ ์ •๋ณด (๋ ํ–‰, ์‹œ์ž‘ ์—ด ์˜คํ”„์…‹ ๋ฐ ๋ ์—ด ์˜คํ”„์…‹)๋ฅผ ๋งคํ•‘ํ•˜๋Š” ํ…Œ์ด๋ธ”์„ ํฌํ•จํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋” ์ž‘์€ ์ฝ”๋“œ ๊ฐ์ฒด ๋ฐ pyc ํŒŒ์ผ์„ ์›ํ•  ๋•Œ ์œ ์šฉํ•˜๋ฉฐ, ์ธํ„ฐํ”„๋ฆฌํ„ฐ๊ฐ€ ์ถ”์ ์„ ํ‘œ์‹œํ•  ๋•Œ ์ถ”๊ฐ€ ์‹œ๊ฐ์  ์œ„์น˜ ํ‘œ์‹œ๋ฅผ ์–ต์ œํ•˜๋Š” ๋ฐ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

PYTHONPERFSUPPORT

  • ์ด ๋ณ€์ˆ˜๊ฐ€ 0์ด ์•„๋‹Œ ๊ฐ’์„ ๊ฐ€์ง€๋ฉด, Linux perf ํ”„๋กœํŒŒ์ผ๋Ÿฌ์˜ ์ง€์›์„ ํ™œ์„ฑํ™”ํ•˜์—ฌ Python ํ˜ธ์ถœ์„ ๊ฐ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๊ฐ’์ด 0์œผ๋กœ ์„ค์ •๋˜๋ฉด, Linux perf ํ”„๋กœํŒŒ์ผ๋Ÿฌ ์ง€์›์ด ๋น„ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.
  • Linux perf ํ”„๋กœํŒŒ์ผ๋Ÿฌ์— ๋Œ€ํ•œ Python ์ง€์› ๋ฐ -X perf ์ปค๋งจ๋“œ ๋ผ์ธ ์˜ต์…˜์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

PYTHONDUMPREFS

  • ์„ค์ •๋˜๋ฉด, Python์€ ์ธํ„ฐํ”„๋ฆฌํ„ฐ๋ฅผ ์ข…๋ฃŒํ•œ ํ›„์—๋„ ์—ฌ์ „ํžˆ ์‚ด์•„ ์žˆ๋Š” ๊ฐ์ฒด์™€ ์ฐธ์กฐ ์นด์šดํŠธ๋ฅผ ๋คํ”„ํ•ฉ๋‹ˆ๋‹ค.
  • --with-trace-refs ๋นŒ๋“œ ์˜ต์…˜์œผ๋กœ Python์„ ๊ตฌ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

PYTHONDUMPREFSFILE=FILENAME

  • ์„ค์ •๋˜๋ฉด, Python์€ ์ธํ„ฐํ”„๋ฆฌํ„ฐ๋ฅผ ์ข…๋ฃŒํ•œ ํ›„์—๋„ ์—ฌ์ „ํžˆ ์‚ด์•„ ์žˆ๋Š” ๊ฐ์ฒด์™€ ์ฐธ์กฐ ์นด์šดํŠธ๋ฅผ FILENAME์ด๋ผ๋Š” ํŒŒ์ผ์— ๋คํ”„ํ•ฉ๋‹ˆ๋‹ค.
  • --with-trace-refs ๋นŒ๋“œ ์˜ต์…˜์œผ๋กœ Python์„ ๊ตฌ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๋ฐ˜์‘ํ˜•
๋‹คํ–ˆ๋‹ค