Virtualenv: --relocatable рд╕рдХреНрд░рд┐рдп рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд╕рд╣реА рдкрде рдкрд░ рдЗрдВрдЧрд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 14 рдорд╛рд░реНрдЪ 2011  ┬╖  14рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: pypa/virtualenv

рдЙрдмрдВрдЯреВ 10.04 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, --relocatable рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЕрдЧрд░ рдореИрдВ рд╕реАрдзреЗ рдЕрдЬрдЧрд░ рдмрд╛рдЗрдирд░реА рдпрд╛ рд╕реЗрдЯрдкреНрдЯреВрд▓-рдЬрдирд░реЗрдЯреЗрдб рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЖрд╣реНрд╡рд╛рди рдХрд░рддрд╛ рд╣реВрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдмрд┐рди/рд╕рдХреНрд░рд┐рдп рдЕрднреА рднреА рдкреБрд░рд╛рдиреЗ рдкрде рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ:

> 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 рдПрдХ рдирд┐рд░рдкреЗрдХреНрд╖ рдкрде рдкрд░ рд╕реЗрдЯ рд╣реИред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдЗрд╕реЗ рд╕рд╛рдкреЗрдХреНрд╖ рдмрдирд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрдм --relocatable рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЪреВрдВрдХрд┐ рд╕рдХреНрд░рд┐рдп рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд╕реЛрд░реНрд╕ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЗрд╕рд▓рд┐рдП рдкрде рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП) dirname $0 ред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдмреИрд╢ рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ:

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

рдЕрдЧрд░ рдпрд╣ рдЖрдкрдХреА рд╕реНрд╡реАрдХреГрддрд┐ рд╕реЗ рдорд┐рд▓рддрд╛ рд╣реИ, рдЗрдпрд╛рди, рдореБрдЭреЗ рдПрдХ рдкреИрдЪ рд▓рд┐рдЦрдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛ рд░рд╣реА рд╣реИред


  • рдмрд┐рдЯрдмрдХреЗрдЯ: https://bitbucket.org/ianb/virtualenv/issue/37
  • рдореВрд▓ рд░реВрдк рд╕реЗ рд░рд┐рдкреЛрд░реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛: рдЬреЗрдл рд╣рдореНрдореЗрд▓
  • рдореВрд▓ рд░реВрдк рд╕реЗ рдпрд╣рд╛рдВ рдирд┐рд░реНрдорд┐рдд: 2010-05-05 19:48:03

рд╕рднреА 14 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдЦрд░рд╛рдм рд╕реНрд╡рд░реВрдкрдг рдХреЗ рд▓рд┐рдП рдЦреЗрдж рд╣реИ .... рдмрд┐рдЯрдмрдХреЗрдЯ рдиреЗ рдореБрдЭреЗ рдлрд┐рд░ рд╕реЗ рдзреЛрдЦрд╛ рджрд┐рдпрд╛ :(


Original Comment By: Jeff Hammel

рдФрд░ %~dp0% рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд┐рдВрдбреЛрдЬрд╝ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдкрде рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рд╡рд░реНрддрдорд╛рди рд╕реНрдХреНрд░рд┐рдкреНрдЯ, рдЬреЛ рдХрд┐ active.bat рдХреЗ рд▓рд┐рдП рд╣реИред


Original Comment By: Sylvain Prat

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИ, рдПрдХ рдкреИрдЪ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред


Original Comment By: Jannis Leidel
  • рдмрджрд▓реА рд╣реБрдИ рд╕рд╛рдордЧреНрд░реАред

Original Comment By: Jannis Leidel

рдпрд╣рд╛рдБ рдмреИрд╢ рдХреЗ рд▓рд┐рдП рдПрдХ рдмреЗрд╣рддрд░ рд╕рдВрд╕реНрдХрд░рдг рд╣реИ:

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

рдФрд░ (рдЯреА) рд╕реАрдПрд╕рдПрдЪ рдХреЗ рд▓рд┐рдП:

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]"
рд╕реНрдХреНрд░рд┐рдкреНрдЯрдкреАрдбрдмреНрд▓реНрдпреВрдбреА = cd "$scriptdir"; pwd
рд╕реЗрдЯреЗрдВрд╡ VIRTUAL_ENV dirname "$scriptpwd"

рдореИрдВрдиреЗ рдЗрд╕ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд▓рд┐рдП рдПрдХ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рд╣реИ (рдЬреЛ рдХреЗрд╡рд▓ рдмреИрд╢ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ):
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 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рд▓рд┐рдирдХреНрд╕, рдмреАрдПрд╕рдбреА/рдореИрдХреЛрдЬрд╝, рдФрд░ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдЕрдиреНрдп рдпреВрдирд┐рдХреНрд╕ рд╕реНрд╡рд╛рджреЛрдВ рдХреЗ рдмреАрдЪ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рд╡рд┐рдХрд▓реНрдк рд╣реИрдВред

@adah1972 , рдЕрдВрдХ #1067 рдирд╡реАрдирддрдо рд╣реИред рдпрд╣ рдореБрджреНрджрд╛ 2012 рдХрд╛ рд╣реИ, #1067 2017 рдХрд╛ рд╣реИред

@arizvisa рдзрдиреНрдпрд╡рд╛рджред рдореИрдВрдиреЗ #1067 рдореЗрдВ рднреА рдЯрд┐рдкреНрдкрдгреА рдХреА рдереАред

рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкреБрд░рд╛рдиреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рд╣рд╛рд▓ рдХреА рдЧрддрд┐рд╡рд┐рдзрд┐ рдирд╣реАрдВ рд╣реИред рдЖрдЧреЗ рдХреЛрдИ рдЧрддрд┐рд╡рд┐рдзрд┐ рдирд╣реАрдВ рд╣реЛрдиреЗ рдкрд░ рдЗрд╕реЗ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЕрдЧрд░ рдЖрдк рдЗрд╕реЗ рдЦреБрд▓рд╛ рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдмрд╕ рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВред рдЖрдкрдХреЗ рдпреЛрдЧрджрд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

zbuc picture zbuc  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

jwarren116 picture jwarren116  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

asottile picture asottile  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

manthey picture manthey  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

jdandrea picture jdandrea  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ