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, ๋๋ ํจ์น๋ฅผ ์์ฑํ๊ฒ ๋์ด ๊ธฐ์ฉ๋๋ค.
์๋ชป๋ ํ์์ ๋ํด ์ฃ์กํฉ๋๋ค....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์๋ ๋๊ธ์ ๋จ๊ฒผ์ต๋๋ค.
์ด ๋ฌธ์ ๋ ์ต๊ทผ ํ๋์ด ์์๊ธฐ ๋๋ฌธ์ ์๋์ผ๋ก ์ค๋๋ ๊ฒ์ผ๋ก ํ์๋์์ต๋๋ค. ๋ ์ด์ ํ๋์ด ์์ผ๋ฉด ํ์๋ฉ๋๋ค. ๊ณ์ ์ด์ด๋๊ณ ์ถ๋ค๋ฉด ๋๊ธ์ ์ถ๊ฐํ์ธ์. ๊ทํ์ ๊ธฐ์ฌ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.