Virtualenv: --relocate๊ฐ€ ํ™œ์„ฑํ™” ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์˜ฌ๋ฐ”๋ฅธ ๊ฒฝ๋กœ๋กœ ๊ฐ€๋ฆฌํ‚ค์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2011๋…„ 03์›” 14์ผ  ยท  14์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: pypa/virtualenv

Ubuntu 10.04๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ python ๋ฐ”์ด๋„ˆ๋ฆฌ ๋˜๋Š” setuptools ์ƒ์„ฑ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ง์ ‘ ํ˜ธ์ถœํ•˜๋ฉด --relocate๊ฐ€ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ bin/activate๋Š” ์—ฌ์ „ํžˆ ์ด์ „ ๊ฒฝ๋กœ๋ฅผ ๋ฐ˜์˜ํ•ฉ๋‹ˆ๋‹ค.

> pwd
/home/jhammel
> virtualenv.py foo
New python executable in foo/bin/python
Installing setuptools............done.
> virtualenv.py --relocatable foo
Making script foo/bin/easy_install relative
Making script foo/bin/easy_install-2.6 relative
Making script foo/bin/pip relative
> mv foo bar
> cd bar
> . bin/activate
(foo)> echo $VIRTUAL_ENV
/home/jhammel/foo
(foo)> which python
/usr/bin/python
(foo)>

์Šคํฌ๋ฆฝํŠธ์—์„œ VIRTUAL_ENV๊ฐ€ ์ ˆ๋Œ€ ๊ฒฝ๋กœ๋กœ ์„ค์ •๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋Œ€์‹  --relocateable์ด ํ˜ธ์ถœ๋  ๋•Œ ์ƒ๋Œ€์ ์œผ๋กœ ๋งŒ๋“ค์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ํ™œ์„ฑํ™” ์Šคํฌ๋ฆฝํŠธ๋Š” ์†Œ์Šค์—ฌ์•ผ ํ•˜๋ฏ€๋กœ ๊ฒฝ๋กœ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ์ด (์˜ˆ๋ฅผ ๋“ค์–ด) dirname $0 ๋ณด๋‹ค ์กฐ๊ธˆ ๋” ๋ณต์žกํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์€ bash์—์„œ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

command=$(history 1) # this should go at the top of the file
parent_path() {
DIRECTORY=$(dirname ${!#})
cd $DIRECTORY/..
pwd
}
VIRTUAL_ENV=$(parent_path $command)

์ด๊ฒƒ์ด ๋‹น์‹ ์˜ ์Šน์ธ์— ๋ถ€ํ•ฉํ•œ๋‹ค๋ฉด, Ian, ๋‚˜๋Š” ํŒจ์น˜๋ฅผ ์ž‘์„ฑํ•˜๊ฒŒ ๋˜์–ด ๊ธฐ์ฉ๋‹ˆ๋‹ค.


๋ชจ๋“  14 ๋Œ“๊ธ€

์ž˜๋ชป๋œ ํ˜•์‹์— ๋Œ€ํ•ด ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค....bitbucket์ด ๋˜ ์ €๋ฅผ ์†์˜€์Šต๋‹ˆ๋‹ค :(


Original Comment By: Jeff Hammel

๊ทธ๋ฆฌ๊ณ  %~dp0% ๋Š” Windows ํ™˜๊ฒฝ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
ํ˜„์žฌ ์Šคํฌ๋ฆฝํŠธ, ์ฆ‰ activate.bat์šฉ์ž…๋‹ˆ๋‹ค.


Original Comment By: Sylvain Prat

์ข‹์€ ์•„์ด๋””์–ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ํŒจ์น˜๊ฐ€ ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.


Original Comment By: Jannis Leidel
  • ๋ณ€๊ฒฝ๋œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค.

Original Comment By: Jannis Leidel

๋‹ค์Œ์€ bash์— ๋Œ€ํ•œ ๋” ๋‚˜์€ ๋ฒ„์ „์ž…๋‹ˆ๋‹ค.

VIRTUAL_ENV=$(cd $(dirname "$BASH_SOURCE"); dirname `pwd`)

๊ทธ๋ฆฌ๊ณ  (t)csh์˜ ๊ฒฝ์šฐ:

set sourced=($_)

set scriptdir=`dirname "$sourced[2]"`

set scriptpwd=`cd "$scriptdir"; pwd`

setenv VIRTUAL_ENV `dirname "$scriptpwd"`

Original Comment By: Anonymous

์ด๊ฒƒ์€ ๋‚ด๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค :

VIRTUAL_ENV="$(dirname $(dirname $(readlink --canonicalize --no-newline

$BASH_SOURCE)))"

๋˜๋Š” ์งง์€ ์˜ต์…˜์œผ๋กœ

VIRTUAL_ENV="$(dirname $(dirname $(readlink -f -n $BASH_SOURCE)))"

Original Comment By: Matteo Bertini

๊ทธ๋ฆฌ๊ณ  ์—ฌ์ „ํžˆ tcsh๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์„ ์œ„ํ•œ ์˜ต์…˜:

์†Œ์Šค ์„ค์ •=($_)
์Šคํฌ๋ฆฝํŠธ ๋””๋ ‰ํ† ๋ฆฌ ์„ค์ •= dirname "$sourced[2]"
์Šคํฌ๋ฆฝํŠธ ์„ค์ • pwd= cd "$scriptdir"; pwd
setenv VIRTUAL_ENV dirname "$scriptpwd"

์ด ๋ณ€๊ฒฝ ์‚ฌํ•ญ์— ๋Œ€ํ•ด pull ์š”์ฒญ์„ ํ–ˆ์Šต๋‹ˆ๋‹ค(bash ์Šคํฌ๋ฆฝํŠธ๋งŒ ๊ตฌํ˜„ํ•จ).
https://github.com/pypa/virtualenv/pull/143

์ฐฝ์˜ ๊ฒฝ์šฐ ACTIVATE_BAT์—์„œ ๋‹ค์Œ์„ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

set VIRTUAL_ENV=__VIRTUAL_ENV__

์™€ ํ•จ๊ป˜:

pushd %~dp0..
set VIRTUAL_ENV=%CD%
popd

์ด๊ฒƒ์€ ๋ณ€๊ฒฝ ์—†์ด ๋™์ผํ•œ ์ ˆ๋Œ€ ๊ฒฝ๋กœ๋ฅผ ๊ฐ–๊ฒŒ ๋˜์ง€๋งŒ ์žฌ๋ฐฐ์น˜ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์—์„œ ์ง์ ‘ %~dp0.. ์„ค์ •ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๋‚ซ์Šต๋‹ˆ๋‹ค.

์ด์™€ ๊ด€๋ จ๋œ ์ตœ์‹  ๋ฌธ์ œ #1067์— ๋Œ€ํ•œ ์ฐธ์กฐ๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ํ™œ์„ฑํ™” ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด ๋ฐ˜๋…„์ด ์ง€๋‚œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๋Š” ๋…ธ๋ ฅ์„ ํ†ตํ•ฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ๋‚ด๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค :

VIRTUAL_ENV="$(dirname $(dirname $(readlink --canonicalize --no-newline

$BASH_SOURCE)))"

๋˜๋Š” ์งง์€ ์˜ต์…˜์œผ๋กœ

VIRTUAL_ENV="$(dirname $(dirname $(readlink -f -n $BASH_SOURCE)))"

readlink ์‚ฌ์šฉํ•˜๋ฉด Linux, BSD/macOS ๋ฐ ์ž ์žฌ์ ์œผ๋กœ ๋‹ค๋ฅธ Unix ๋ฒ„์ „ ๊ฐ„์— ๋ช…๋ น์ค„ ์˜ต์…˜์ด ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ๋ฌธ์ œ๊ฐ€ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@adah1972 , 1067

@arizvisa ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. #1067์—๋„ ๋Œ“๊ธ€์„ ๋‚จ๊ฒผ์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋Š” ์ตœ๊ทผ ํ™œ๋™์ด ์—†์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ž๋™์œผ๋กœ ์˜ค๋ž˜๋œ ๊ฒƒ์œผ๋กœ ํ‘œ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋” ์ด์ƒ ํ™œ๋™์ด ์—†์œผ๋ฉด ํ์‡„๋ฉ๋‹ˆ๋‹ค. ๊ณ„์† ์—ด์–ด๋‘๊ณ  ์‹ถ๋‹ค๋ฉด ๋Œ“๊ธ€์„ ์ถ”๊ฐ€ํ•˜์„ธ์š”. ๊ท€ํ•˜์˜ ๊ธฐ์—ฌ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰