Virtualenv: 'nounset' μ˜΅μ…˜μ΄ μ„€μ •λœ 경우 activate.shκ°€ μ‹€νŒ¨ν•©λ‹ˆλ‹€.

에 λ§Œλ“  2011λ…„ 07μ›” 07일  Β·  24μ½”λ©˜νŠΈ  Β·  좜처: pypa/virtualenv

virtualenvλ₯Ό ν™œμ„±ν™”ν•˜λ €κ³  ν•˜λ©΄ λ‹€μŒ 였λ₯˜κ°€ λ°œμƒν•©λ‹ˆλ‹€.

$ source test-env/bin/activate
-bash: _OLD_VIRTUAL_PATH: unbound variable

이것은 μ„€μ •λ˜μ§€ μ•Šμ€ λ³€μˆ˜μ— μ•‘μ„ΈμŠ€ν•  λ•Œ 였λ₯˜κ°€ λ°œμƒν•˜λŠ” _nounset_ μ˜΅μ…˜μ„ μ‚¬μš©ν•˜λ„λ‘ Bashλ₯Ό κ΅¬μ„±ν–ˆκΈ° λ•Œλ¬Έμ— λ°œμƒν•©λ‹ˆλ‹€( μ—¬κΈ° μ°Έμ‘°).

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

ν˜„μž¬ ν•΄κ²° 방법—

set -o nounset

[...]

set +o nounset
. ~/.env/bin/activate
set -o nounset

[...]

λͺ¨λ“  24 λŒ“κΈ€

λ‹€μŒ 쀄을 λ³€κ²½ν•˜μ—¬ 이 문제λ₯Ό ν•΄κ²°ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
if [ -n "$OLD_VIRTUAL_PATH" ] ; then
μ—κ²Œ:
if [ -n "${_OLD_VIRTUAL_PATH=''}" ] ; then
${VAR=DEFAULT} ꡬ문은 VAR이 μ„€μ •λ˜μ–΄ 있으면 VAR을 λ°˜ν™˜ν•˜κ³  그렇지 μ•ŠμœΌλ©΄ DEFAULTλ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€( 이 νŽ˜μ΄μ§€ μ°Έμ‘° κ·ΈλŸ¬λ‚˜ 그것은 νŠΈλ¦­μ„ μˆ˜ν–‰ν•©λ‹ˆλ‹€.

사싀, 그것은 λͺ¨λ“  μ‹€μ‘΄ β€‹β€‹ν…ŒμŠ€νŠΈλ₯Ό λ‹€μ‹œ μž‘μ„±ν•΄μ•Ό ν•˜κΈ° λ•Œλ¬Έμ— μ ˆλ¦„λ°œμ΄ μˆ˜μ •μž…λ‹ˆλ‹€. 슀크립트 상단에 set -o nounset λ₯Ό μΆ”κ°€ν•˜λŠ” 것이 훨씬 μ‰½μŠ΅λ‹ˆλ‹€.

λ‚˜λ„ 이거 λ•Œλ Έλ‹€.

λ‚˜λ„

슀크립트 내뢀에 λŒ€ν•΄ -uλ₯Ό μ„€μ • ν•΄μ œν•œ λ‹€μŒ λ§ˆλ¬΄λ¦¬ν•  λ•Œ μ›λž˜ 섀정을 λ³΅μ›ν•˜λŠ” 방법이 타당할 것이라고 μƒκ°ν•©λ‹ˆλ‹€.

λ‚˜λŠ” μ—¬κΈ°μ—μ„œ κ·Έλ ‡κ²Œν•˜λŠ” 방법을 μ•Œμ•„ λ‚΄λ €κ³  λ…Έλ ₯ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€ - http://stackoverflow.com/questions/13494841/how-can-you-ask-bash-for-the-current-options

ν’€ λ¦¬ν€˜μŠ€νŠΈ - https://github.com/pypa/virtualenv/pull/357

λ‚˜λŠ” 할것이닀:

if [ -n "$OLD_VIRTUAL_PATH" ] ; then

μ—κ²Œ:

if [ -n "${_OLD_VIRTUAL_PATH-}" ] ; then
${var-DEFAULT}  If var not set, evaluate expression as $DEFAULT *

λ„€, 직접 ν•΄λ³΄μ„Έμš”.

virtualenv==1.11.4 μ‹€ν–‰ 쀑

ν˜„μž¬ ν•΄κ²° 방법—

set -o nounset

[...]

set +o nounset
. ~/.env/bin/activate
set -o nounset

[...]

이것은 if ! [ -z "${_OLD_VIRTUAL_PATH+x}" ] ; then λ₯Ό μ‚¬μš©ν•˜λŠ” https://github.com/pypa/virtualenv/pull/723 에 μ˜ν•΄ μˆ˜μ •λ  수 μžˆμŠ΅λ‹ˆλ‹€.

κ·ΈλŸ¬λ‚˜ $_OLD_VIRTUAL_PATH μžμ²΄λŠ” #722μ—μ„œ 제거될 μ˜ˆμ •μž…λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ #723은 λ‹€λ₯Έ λ³€μˆ˜μ—μ„œλ„ 이λ₯Ό μˆ˜μ •ν•©λ‹ˆλ‹€.

:+1:

λ‚˜λ„ 이거 λ•Œλ €....

μ΄λ ‡κ²Œ μ‰¬μš΄ λ¬Έμ œκ°€ 4년이 μ§€λ‚˜λ„λ‘ 고쳐지지 μ•ŠλŠ”λ‹€λŠ” 게 μ’€ μ΄μƒν•˜λ‹€.
beaumartinez의 ν•΄κ²° 방법은 ν˜„μž¬λ‘œμ„œλŠ” κ°€μž₯ κ°„λ‹¨ν•©λ‹ˆλ‹€.

이것은 #645둜 μˆ˜μ •λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

κ²°μ •λœ

@dstufft 이 μˆ˜μ •λœ 릴리슀λ₯Ό μ§€μ •ν•˜μ—¬ ν•„μš”ν•œ μ΅œμ†Œ 버전이 μ„€μΉ˜λ˜μ—ˆλŠ”μ§€ 확인할 수 μžˆμŠ΅λ‹ˆκΉŒ? λ²„κ·Έμ—μ„œ μˆ˜μ • 사항이 ν¬ν•¨λœ λ¦΄λ¦¬μŠ€μ™€ κ΄€λ ¨ν•˜μ—¬ μ „ν˜€ λͺ…ν™•ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

@ssbarnea μœ„μ˜ λŒ“κΈ€μ— μ–ΈκΈ‰λœ κ²ƒμ²˜λŸΌ 2015λ…„ 8μ›” 12일에 μˆ˜μ •λ˜μ—ˆμœΌλ―€λ‘œ ν•΄λ‹Ή λ‚ μ§œ 이후에 릴리슀된 λͺ¨λ“  λ²„μ „μž…λ‹ˆλ‹€. https://virtualenv.pypa.io/en/latest/changes/ μ—μ„œ μ΄λŠ” 13.1.1을 μ˜λ―Έν•©λ‹ˆλ‹€(μ‹€μ œλ‘œ ν•΄λ‹Ή 버전에 λŒ€ν•œ λ©”λͺ¨λŠ” 이 λ³€κ²½ 사항을 ꡬ체적으둜 언급함). κ·Έ λͺ¨λ“  μ •λ³΄λŠ” μ‰½κ²Œ μ‚¬μš©ν•  수 μžˆμœΌλ―€λ‘œ κ°„λ‹¨ν•œ κ²€μƒ‰μœΌλ‘œ 찾을 수 μžˆμ„ κ²ƒμž…λ‹ˆλ‹€(이것이 μ œκ°€ ν•œ κ²ƒμž…λ‹ˆλ‹€).

λ‚˜μœ μ†Œμ‹μ΄ μžˆμŠ΅λ‹ˆλ‹€. 이 버그λ₯Ό λ‹€μ‹œ μ—΄μ–΄μ•Ό ν•©λ‹ˆλ‹€. μ™œλƒν•˜λ©΄ 이제 activate: line 13: _OLD_VIRTUAL_PYTHONHOME: unbound variable λ₯Ό μ–»μ—ˆκ³  이 문제λ₯Ό μˆ˜μ •ν•˜λŠ” λ™μ•ˆ strict bash λ₯Ό μ‚¬μš©ν•˜μ—¬ 가상 ν™˜κ²½μ„ ν™œμ„±ν™”ν•˜λ €λŠ” ν…ŒμŠ€νŠΈλ₯Ό λ„μž…ν•˜λŠ” 것이 μ€‘μš”ν•˜λ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€.

이것은 line 22: ZSH_VERSION: unbound variable 에도 적용되며 λͺ©λ‘μ΄ μ–Όλ§ˆλ‚˜ 였래 κ°ˆμ§€ κΆκΈˆν•©λ‹ˆλ‹€... λ‚΄ ν•΄κ²° 방법 λͺ…령쀄이 λΉ„λš€μ–΄μ§„ κ²ƒμ²˜λŸΌ 보이기 μ‹œμž‘ν•©λ‹ˆλ‹€.

PS1="${{PS1:-}}" _OLD_VIRTUAL_PATH="${{_OLD_VIRTUAL_PATH:-}}" _OLD_VIRTUAL_PYTHONHOME="${{_OLD_VIRTUAL_PYTHONHOME:-}}" source "$VENV/bin/activate"

λ¬Όλ‘  ν™˜κ²½μ„ 직접 μ„€μ •ν•˜κ±°λ‚˜ Python μ‹€ν–‰ 파일의 전체 경둜 이름을 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

이에 λŒ€ν•œ 토둠을 λ‹€μ‹œ μ‹œμž‘ν•΄μ„œ μ£„μ†‘ν•©λ‹ˆλ‹€. λΉŒλ“œ μ„œλ²„μ— μžˆλŠ” virtualenv의 버전을 ν™•μΈν•˜μ§€ μ•ŠλŠ” μ‹€μˆ˜λ₯Ό μ €μ§ˆλ €κ³  κ³ λŒ€ 버전 1.10.1μ΄λΌλŠ” μΆ”μ•…ν•œ λ°œκ²¬μ„ ν–ˆμŠ΅λ‹ˆλ‹€. 이것은 λ§Žμ€ λ²„κ·Έλ‘œ κ°„μ£Όλ©λ‹ˆλ‹€. 내일 μ—…κ·Έλ ˆμ΄λ“œ ν•  μ˜ˆμ •μž…λ‹ˆλ‹€.

사과가 ν•„μš”ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. 사싀 이 λΆ€ν™œμ„ 톡해 λ‚˜λŠ” λͺ‡ 가지λ₯Ό λ°°μ› λ‹€.
λŒ€ν™”.

2017λ…„ 3μ›” 7일 ν™”μš”μΌ μ˜€ν›„ 3:09 Sorin Sbarnea μ•Œλ¦Ό @github.com
썼닀:

이에 λŒ€ν•œ 토둠을 μž¬κ°œν•˜μ—¬ μ£„μ†‘ν•©λ‹ˆλ‹€.
λΉŒλ“œ μ„œλ²„μ— μžˆλŠ” virtualenv의 버전을 ν™•μΈν•˜κ³ 
λͺ»μƒκΈ΄ 발견, κ³ λŒ€ 버전 1.10.1. 이것은 λ‹€μŒμ„ 계산할 κ²ƒμž…λ‹ˆλ‹€.
λ§Žμ€ 버그. 내일 μ—…κ·Έλ ˆμ΄λ“œ ν•  μ˜ˆμ •μž…λ‹ˆλ‹€.

β€”
당신이 λŒ“κΈ€μ„ λ‹¬μ•˜κΈ° λ•Œλ¬Έμ— 이것을 λ°›λŠ” κ²ƒμž…λ‹ˆλ‹€.
이 이메일에 직접 λ‹΅μž₯ν•˜κ³  GitHubμ—μ„œ ν™•μΈν•˜μ„Έμš”.
https://github.com/pypa/virtualenv/issues/150#issuecomment-284859700 ,
λ˜λŠ” μŠ€λ ˆλ“œ μŒμ†Œκ±°
https://github.com/notifications/unsubscribe-auth/AAFWbGU02kdSoecXUESrDHlOUN9Rci5Oks5rjcdvgaJpZM4AQ_Js
.

ν˜„μž¬ λ¦΄λ¦¬μŠ€μ—μ„œλ„ 버그가 λ‚¨μ•„μžˆλŠ” 것 κ°™μ•„μ„œ https://github.com/pypa/virtualenv/issues/1029 둜 μ˜¬λ ΈμŠ΅λ‹ˆλ‹€.

μ§€κΈˆ μˆ˜μ •λ˜μ—ˆμŠ΅λ‹ˆλ‹€ https://github.com/pypa/virtualenv/pull/922

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰