virtualenvwrapper 3.5¶
virtualenvwrapper 㯠Ian Bicking ã® virtualenv ããŒã«ã®æ¡åŒµæ©èœã§ãããã®æ¡åŒµæ©èœã¯ä»®æ³ç°å¢ã®äœæã»åé€ãè¡ã£ãããéçºã¯ãŒã¯ãããŒã管çããã©ãããŒãæäŸããŸãããã®ã©ãããŒã䜿ãããšã§ãéçºç°å¢ã®äŸåé¢ä¿ã«ãã競åãèµ·ããããåæã«è€æ°ã®ãããžã§ã¯ãã§äœæ¥ãããããªããŸãã
æ©èœÂ¶
- 1ã€ã®å Žæã«å šãŠã®ä»®æ³ç°å¢ãæ§æãã
- ä»®æ³ç°å¢ã管ç(äœæãåé€ãã³ããŒ)ããã©ãããŒ
- 1ã€ã®ã³ãã³ãã§ä»®æ³ç°å¢ãåãæ¿ãã
- ã³ãã³ãã®åŒæ°ããä»®æ³ç°å¢ãã¿ãè£å®ã§ãã
- å šãŠã®æäœããŠãŒã¶èšå®ã§ããã¯ã§ãã(ãŠãŒã¶ã«ã¹ã¿ãã€ãº ãåç §)
- å ±æã§ããæ¡åŒµæ©èœãäœæã§ãããã©ã°ã€ã³ã·ã¹ãã (virtualenvwrapper ãæ¡åŒµãã ãåç §)
å ¥é¶
virtualenvwrapper ãæäŸããæ©èœã説æããã«ã¯ãå®éã«äœ¿ã£ãŠã¿ãã®ãæãè¯ãæ¹æ³ã§ãã
ãŸãåæåã®äœæ¥ããããŸãããã®äœæ¥ã®å€§åã¯äžåºŠã ãè¡ãå¿
èŠããããŸããpip ã§ã€ã³ã¹ããŒã«ããå Žæã«äŸåãã virtualenvwrapper.sh ã®ãã¹ãå€æŽãããã source /usr/local/bin/virtualenvwrapper.sh
ã®ã³ãã³ããã·ã§ã«èµ·åæã«èªã¿èŸŒãŸãããã¡ã€ã«ãžè¿œå ãããããã§ãããã
$ pip install virtualenvwrapper
...
$ export WORKON_HOME=~/Envs
$ mkdir -p $WORKON_HOME
$ source /usr/local/bin/virtualenvwrapper.sh
$ mkvirtualenv env1
Installing
distribute..........................................
....................................................
....................................................
...............................done.
virtualenvwrapper.user_scripts Creating /Users/dhellmann/Envs/env1/bin/predeactivate
virtualenvwrapper.user_scripts Creating /Users/dhellmann/Envs/env1/bin/postdeactivate
virtualenvwrapper.user_scripts Creating /Users/dhellmann/Envs/env1/bin/preactivate
virtualenvwrapper.user_scripts Creating /Users/dhellmann/Envs/env1/bin/postactivate New python executable in env1/bin/python
(env1)$ ls $WORKON_HOME
env1 hook.log
ããã§äœæããä»®æ³ç°å¢ãžãœãããŠã§ã¢ãã€ã³ã¹ããŒã«ã§ããŸãã
(env1)$ pip install django
Downloading/unpacking django
Downloading Django-1.1.1.tar.gz (5.6Mb): 5.6Mb downloaded
Running setup.py egg_info for package django
Installing collected packages: django
Running setup.py install for django
changing mode of build/scripts-2.6/django-admin.py from 644 to 755
changing mode of /Users/dhellmann/Envs/env1/bin/django-admin.py to 755
Successfully installed django
lssitepackages
ã§æ°ãã«ã€ã³ã¹ããŒã«ããããã±ãŒãžã調ã¹ãããŸãã
(env1)$ lssitepackages
Django-1.1.1-py2.6.egg-info easy-install.pth
distribute-0.6.10-py2.6.egg pip-0.6.3-py2.6.egg
django setuptools.pth
åœç¶ã1ã€ã ãã®ä»®æ³ç°å¢ã«å¶éãããããã§ã¯ããŸããã
(env1)$ ls $WORKON_HOME
env1 hook.log
(env1)$ mkvirtualenv env2
Installing distribute...............................
....................................................
....................................................
........... ...............................done.
virtualenvwrapper.user_scripts Creating /Users/dhellmann/Envs/env2/bin/predeactivate
virtualenvwrapper.user_scripts Creating /Users/dhellmann/Envs/env2/bin/postdeactivate
virtualenvwrapper.user_scripts Creating /Users/dhellmann/Envs/env2/bin/preactivate
virtualenvwrapper.user_scripts Creating /Users/dhellmann/Envs/env2/bin/postactivate New python executable in env2/bin/python
(env2)$ ls $WORKON_HOME
env1 env2 hook.log
workon
ã§ä»®æ³ç°å¢ãåãæ¿ããŸãã
(env2)$ workon env1
(env1)$ echo $VIRTUAL_ENV
/Users/dhellmann/Envs/env1
(env1)$
ããã« workon
ã³ãã³ãã¯ä»®æ³ç°å¢åãã¿ãè£å®ã§ããŸãããããŠãããä»®æ³ç°å¢ãã¢ã¯ãã£ãåãŸãã¯éã¢ã¯ãã£ãåãããããã«ã«ã¹ã¿ã ã¹ã¯ãªãããå®è¡ããŸã(ãŠãŒã¶ã«ã¹ã¿ãã€ãº ãåç
§)ã
(env1)$ echo 'cd $VIRTUAL_ENV' >> $WORKON_HOME/postactivate
(env1)$ workon env2
(env2)$ pwd
/Users/dhellmann/Envs/env2
æ°ããªç°å¢ãäœæããããšãã« postmkvirtualenv ãå®è¡ãããŠãäžè¬çã«äœ¿çšããããŒã«ãèªåçã«ã€ã³ã¹ããŒã«ããŸãã
(env2)$ echo 'pip install sphinx' >> $WORKON_HOME/postmkvirtualenv
(env3)$ mkvirtualenv env3
New python executable in env3/bin/python
Installing distribute...............................
....................................................
....................................................
........... ...............................done.
virtualenvwrapper.user_scripts Creating /Users/dhellmann/Envs/env3/bin/predeactivate
virtualenvwrapper.user_scripts Creating /Users/dhellmann/Envs/env3/bin/postdeactivate
virtualenvwrapper.user_scripts Creating /Users/dhellmann/Envs/env3/bin/preactivate
virtualenvwrapper.user_scripts Creating /Users/dhellmann/Envs/env3/bin/postactivate
Downloading/unpacking sphinx
Downloading Sphinx-0.6.5.tar.gz (972Kb): 972Kb downloaded
Running setup.py egg_info for package sphinx
no previously-included directories found matching 'doc/_build'
Downloading/unpacking Pygments>=0.8 (from sphinx)
Downloading Pygments-1.3.1.tar.gz (1.1Mb): 1.1Mb downloaded
Running setup.py egg_info for package Pygments
Downloading/unpacking Jinja2>=2.1 (from sphinx)
Downloading Jinja2-2.4.tar.gz (688Kb): 688Kb downloaded
Running setup.py egg_info for package Jinja2
warning: no previously-included files matching '*' found under directory 'docs/_build/doctrees'
Downloading/unpacking docutils>=0.4 (from sphinx)
Downloading docutils-0.6.tar.gz (1.4Mb): 1.4Mb downloaded
Running setup.py egg_info for package docutils
Installing collected packages: docutils, Jinja2, Pygments, sphinx
Running setup.py install for docutils
Running setup.py install for Jinja2
Running setup.py install for Pygments
Running setup.py install for sphinx
no previously-included directories found matching 'doc/_build'
Installing sphinx-build script to /Users/dhellmann/Envs/env3/bin
Installing sphinx-quickstart script to /Users/dhellmann/Envs/env3/bin
Installing sphinx-autogen script to /Users/dhellmann/Envs/env3/bin
Successfully installed docutils Jinja2 Pygments sphinx (env3)$
(venv3)$ which sphinx-build
/Users/dhellmann/Envs/env3/bin/sphinx-build
ã³ã¢ããã±ãŒãžã§å®çŸ©ãããæ¢åæ©èœ(ã³ãã³ããªãã¡ã¬ã³ã¹ ãåç §)ããµãŒãããŒãã£ã®ãã©ã°ã€ã³(virtualenvwrapper ãæ¡åŒµãã ãåç §)ããŠãŒã¶å®çŸ©ã¹ã¯ãªãã(ãŠãŒã¶ã«ã¹ã¿ãã€ãº ãåç §)ãçµã¿åãããŠãvirtualenvwrapper ã¯éå€ãªç¹°ãè¿ãè¡ãæäœãèªååããæ©äŒãæäŸããŸãã
詳现å 容¶
ã€ã³ã¹ããŒã«Â¶
ãµããŒãã·ã§ã«Â¶
virtualenvwrapper 㯠Bourne ã·ã§ã«äºæã®æ§æããã€äžé£ã®ã·ã§ã« é¢æ° ã§ããMac OS X ãš Linux ç°å¢ã®ã次ã®ã·ã§ã«ã§èªåãã¹ããè¡ã£ãŠããŸãã
bash
ksh
zsh
ãã®ä»ã®ã·ã§ã«ã§ãåäœãããããããŸãããããã«èšèŒãããŠããªãã·ã§ã«ã§åäœããã®ãçºèŠãããç§ã«æããŠãã ããããŸãããã®ä»ã®ã·ã§ã«ã§ãåäœããããã« virtualenvwrapper ãå šãéããã®ã«æžãæããã«ä¿®æ£ã§ãããªãã bitbucket ã®ãããžã§ã¯ãããŒãž ãã pull ãªã¯ãšã¹ããéã£ãŠãã ãããããªããéäºæãªã·ã§ã«äžã§åäœãããã¯ããŒã³ãäœæãããªãããã®ããŒãžã§ãªã³ã¯ã匵ãã®ã§ç§ã«é£çµ¡ããŠãã ããã
MSYS¶
Python ã Windows ãã€ãã£ãã«ã€ã³ã¹ããŒã«ãã MSYS ç°å¢ã§ã virtualenvwrapper ã䜿ããŸãããã®ããã«ã¯ãã€ã³ã¹ããŒã«ãã MSYS ç°å¢ãžã®ã«ãŒããã¹ã MSYS_HOME
ãšããç°å¢å€æ°ã§å®çŸ©ããå¿
èŠããããŸãã
export WORKON_HOME=$HOME/.virtualenvs
export MSYS_HOME=/c/msys/1.0
source /usr/local/bin/virtualenvwrapper.sh
ãŸãã¯:
export WORKON_HOME=$HOME/.virtualenvs
export MSYS_HOME=C:\msys\1.0
source /usr/local/bin/virtualenvwrapper.sh
MSYS ã®èšå®ã«ãããŸãã MSYS_HOME/bin
ãã©ã«ããŒã« MSYS mktemp binary ãã€ã³ã¹ããŒã«ããå¿
èŠããããããããŸããã
PowerShell¶
Guillermo López-Anglada ã¯ãMicrosoft ã® PowerShell ç°å¢ã§å®è¡ã§ããããã« virtualenvwrapper ã移æ€ããŸãããããã¯ä»ã®æ¡åŒµæ©èœãšäºææ§ããªãã(æ©èœæ¡åŒµãšããããã¯) å€§å¹ ãªåå®è£ ã§ããããšãããå¥ã«é åžããããã«ããŸããã virtualenvwrapper-powershell ã¯ãPyPI ããããŠã³ããŒãã§ããŸãã
Python ããŒãžã§ã³Â¶
virtualenvwrapper 㯠Python 2.4 - 2.7 ã§ãã¹ããããŠããŸãã
åºæ¬çãªã€ã³ã¹ããŒã«Â¶
virtualenvwrapper ã¯ãvirtualenv ãã€ã³ã¹ããŒã«ãããŠããã°ããŒãã«ãª site-packages ãã£ã¬ã¯ããªãšåããšããã«ã€ã³ã¹ããŒã«ããå¿ èŠããããŸãããããè¡ãã«ã¯ã管çè ç¹æš©ãå¿ èŠã«ãªããããããŸãããæãç°¡åãªã€ã³ã¹ããŒã«æ¹æ³ã¯ pip ã䜿ãããšã§ãã
$ pip install virtualenvwrapper
ãŸãã¯:
$ sudo pip install virtualenvwrapper
Warning
virtualenv ã䜿ããšãããããã®ç¬ç«ãã Python ç°å¢ãäœæã§ããŸããã·ã¹ãã ç°å¢ã«äŸåããå šãŠã® Python ç°å¢ããåãããã±ãŒãžãå ±æã§ããããã«ãã·ã¹ãã ã«ã€ã³ã¹ããŒã«ãããŠãã Python (virtualenv ãã¢ã¯ãã£ãã§ã¯ãªã) ã« virtualenv ãš virtualenvwrapper ã®2ã€ã ãã¯ã€ã³ã¹ããŒã«ããå¿ èŠããããŸãã
ã°ããŒãã«ã® site-packages ãã£ã¬ã¯ããªã«ã€ã³ã¹ããŒã«ãã代ããã« ãŠãŒã¶ãŒã®ããŒã«ã«ãã£ã¬ã¯ã㪠(æ®é㯠~/.local) ã«ã€ã³ã¹ããŒã«ã§ããŸãã
$ pip install --install-option="--user" virtualenvwrapper
ã·ã§ã«ã®èµ·åãã¡ã€ã«Â¶
ã·ã§ã«ã®èµ·åãã¡ã€ã« (.bashrc
, .profile
ãªã©) ã«ãä»®æ³ç°å¢ãæ§ç¯ããå Žæãéçºäžã®ãããžã§ã¯ããã£ã¬ã¯ããªã®å Žæãvirtualenvwrapper ãã€ã³ã¹ããŒã«ããã·ã§ã«ã¹ã¯ãªããã®å Žæã®3è¡ãè¿œå ããŠãã ããã
export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/Devel
source /usr/local/bin/virtualenvwrapper.sh
ç·šéåŸã«èµ·åãã¡ã€ã«ãåèªã¿èŸŒã¿ããŠãã ãã (äŸãã° source ~/.bashrc
ãå®è¡ãã) ã
ã¯ã€ãã¯ã¹ã¿ãŒã¶
workon
ãå®è¡ãã- ä»®æ³ç°å¢ã®ãªã¹ãã衚瀺ãããããäœã衚瀺ãããªã
mkvirtualenv temp
ãå®è¡ãã- æ°ããªä»®æ³ç°å¢
temp
ãäœæãããŠã¢ã¯ãã£ãåããã workon
ãå®è¡ãã- ãã®ãšãã«
temp
ã®ä»®æ³ç°å¢ãæäŸããã
èšå®Â¶
virtualenvwrapper ã¯ãç°å¢å€æ°ãå€æŽããããšã§ã«ã¹ã¿ãã€ãºã§ããŸãã virtualenvwrapper.sh
ãèªã¿èŸŒãŸãã åã® ã·ã§ã«ã®èµ·åãã¡ã€ã«ã§ç°å¢å€æ°ãèšå®ããŠãã ããã
ä»®æ³ç°å¢ã®å Žæ¶
ç°å¢å€æ° WORKON_HOME
ã¯ãvirtualenvwrapper ã䜿ãä»®æ³ç°å¢ã®å Žæãæå®ããŸããããã©ã«ãèšå®ã¯ $HOME/.virtualenvs
ã§ããvirtualenvwrapper ãèªã¿èŸŒãŸãããšãã«ãã®ãã£ã¬ã¯ããªãååšããªãå Žåã¯ãèªåçã«äœæãããŸãã
ãããžã§ã¯ããã£ã¬ã¯ããªã®å Žæ¶
ç°å¢å€æ° PROJECT_HOME
ã¯ãvirtualenvwrapper ã䜿ããããžã§ã¯ãã®ã¯ãŒã¯ãã£ã¬ã¯ããªã®å Žæãæå®ããŸãããã®ç°å¢å€æ°ã¯ mkproject ãå©çšããåã«èšå®ããŠããã®ãã£ã¬ã¯ããªãäœæããŠããå¿
èŠããããŸãã
See also
ãããžã§ã¯ãã®ãªã³ã¯ãã¡ã€ã«å¶
ç°å¢å€æ° VIRTUALENVWRAPPER_PROJECT_FILENAME
ã¯ãvirtualenvwrapper ã䜿ãããããžã§ã¯ãã®ã¯ãŒã¯ãã£ã¬ã¯ããªã«å¯Ÿã㊠virtualenv ããªã³ã¯ãããã¡ã€ã«åãæå®ããŸãã
See also
ããã¯ã¹ã¯ãªããã®å Žæ¶
ç°å¢å€æ° VIRTUALENVWRAPPER_HOOK_DIR
ã¯ãvirtualenvwrapper ã䜿ã ãŠãŒã¶ãŒå®çŸ©ã®ãã㯠ãä¿åãããå Žæãæå®ããŸããããã©ã«ãèšå® $WORKON_HOME
ã§ãã
See also
ããã¯ãã°ã®å Žæ¶
ç°å¢å€æ° VIRTUALENVWRAPPER_LOG_DIR
ã¯ãvirtualenvwrapper ã®ããã¯ããŒããŒãæžã蟌ããã°ã®å Žæãæå®ããŸããããã©ã«ãèšå® $WORKON_HOME
ã§ãã
Python ã€ã³ã¿ãŒããªã¿ãŒãš virtualenv ãš $PATH¶
èµ·åãã¡ã€ã«ã®èªã¿èŸŒã¿æã« virtualenvwrapper.sh
ã¯ãæåã« $PATH
äžã® python
ãš virtualenv
ãèŠã€ããŠãåŸã§äœ¿ãããã«ãã®æ
å ±ãèŠããŠãããŸãããã㯠virtualenvwrapper ãã€ã³ã¹ããŒã«ãããŠããªãããŸãã¯å¥ã®ããŒãžã§ã³ã® virtualenv ãã€ã³ã¹ããŒã«ãããä»®æ³ç°å¢å
éšã§ã€ã³ã¿ãŒããªã¿ãæå¹ã«ããŠããªãã $PATH
å€æŽã«ãã競åãèµ·ãããªãããã«ããŸãããã®åäœã®çç±ã¯ virtualenvwrapper.sh
ã source ãã åã« èšå®ããã $PATH
ãéèŠã ããã§ãã
äŸãã°:
export PATH=/usr/local/bin:$PATH
source /usr/local/bin/virtualenvwrapper.sh
$PATH
ã®æ¢çŽ¢ãäžæžãããã«ã¯ã
å©çšããã€ã³ã¿ãŒããªã¿ãŒã®ãã«ãã¹ãæå®ãã VIRTUALENVWRAPPER_PYTHON
ãšã
å©çšãã virtualenv
ãã€ããªæå®ãã VIRTUALENVWRAPPER_VIRTUALENV
ã®ãã«ãã¹ãèšå®ããŠãã ããã
äž¡æ¹ã®ç°å¢å€æ°ã¯ virtualenvwrapper.sh
ã source ãããåã« èšå®ããå¿
èŠããããŸã ã
äŸãã°:
export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python
export VIRTUALENVWRAPPER_VIRTUALENV=/usr/local/bin/virtualenv
source /usr/local/bin/virtualenvwrapper.sh
virtualenv ã®ããã©ã«ãåŒæ°Â¶
VIRTUALENVWRAPPER_VIRTUALENV
ã§æå®ãããã¢ããªã±ãŒã·ã§ã³ãåŒæ°ãåããªãããã®åŒæ°ã VIRTUALENVWRAPPER_VIRTUALENV_ARGS
ã«èšå®ã§ããŸãããã®ç°å¢å€æ°ã¯ virtualenv
ã«æž¡ãããã©ã«ãåŒæ°ãèšå®ããã®ã«ã䜿ããŸããäŸãã°ãã·ã¹ãã ã® site-packages
ãã£ã¬ã¯ããªãšç¬ç«ããä»®æ³ç°å¢ãæ¯åæ°ãã«äœæããã«ã¯ã --no-site-packages
ããã®å€ãšããŠèšå®ããŸãã
export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages'
äžæãã¡ã€ã«Â¶
virtualenvwrapper 㯠$TMPDIR
ã«äžæãã¡ã€ã«ãäœæããŸãããã®ç°å¢å€æ°ãã»ãããããŠããªãå Žå㯠/tmp
ã䜿çšããŸããvirtualenvwrapper åãã ãã®äžæãã¡ã€ã«ã®äœæå Žæãå€æŽããã«ã¯ VIRTUALENVWRAPPER_TMPDIR
ãã»ããããŠãã ããã
ãµã€ãå šäœã®èšå®Â¶
ã»ãšãã©ã® UNIX ã·ã¹ãã ã¯ãå šãŠã®ãŠãŒã¶ãŒã«èšå®ãé©çšããæ©èœãæäŸããŸããããã¯å žåçã«2ã€ã®æ¹æ³ã®ãããããåããŸããæ°ããã¢ã«ãŠã³ãã®äœææã® skeleton ãã¡ã€ã«ãç·šéããããã·ã§ã«ã®ã°ããŒãã«ãªèµ·åãã¡ã€ã«ãç·šéãããã§ãã
æ°ããã¢ã«ãŠã³ãã®äœææã«ã¹ã±ã«ãã³ãã¡ã€ã«ãç·šéããæ¹æ³ã¯ãåãŠãŒã¶ãŒã virtualenvwrapper ãèªã¿èŸŒãããã«ãããããèšå®ãããèªåãã¡ã®èµ·åãã¡ã€ã«ããã¡ãŸããåãŠãŒã¶ãŒã¯ãèµ·åãã¡ã€ã«ã®è©²åœè¡ãã³ã¡ã³ãã¢ãŠãããããåé€ããããšã§èšå®ãç¡å¹ã«ã§ããŸããç·šéããå¿ èŠã®ããé©åãªãã¡ã€ã«ãææ¡ããã«ã¯ããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ããŸãã¯ã·ã§ã«ã®ããã¥ã¡ã³ããåç §ããŠãã ããã
ç¹å®ã·ã§ã«ã®ã°ããŒãã«ã®èµ·åãã¡ã€ã«ãå€æŽããæ¹æ³ã¯ããã®ã·ã§ã«ã®å šãŠãŒã¶ãŒã«å¯Ÿã㊠virtualenvwrapper ãæå¹ãšãªããåãŠãŒã¶ãŒãç¡å¹ã«ããããšã¯ã§ããŸãããç·šéããå¿ èŠã®ããé©åãªãã¡ã€ã«ãææ¡ããã«ã¯ããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ããŸãã¯ã·ã§ã«ã®ããã¥ã¡ã³ããåç §ããŠãã ããã
2.9 ãžã®ã¢ããã°ã¬ãŒã¶
ããŒãžã§ã³ 2.9 ã¯ããããŸã§å¥ã§é
åžããŠãã virtualenvwrapper.project
ã®æ©èœãæäŸããŸãããã®ãããžã§ã¯ãæ¡åŒµã®å€ãããŒãžã§ã³ãã€ã³ã¹ããŒã«ããŠãããªããã¢ããã°ã¬ãŒãåã«ããããåé€ããŠãã ããã
1.x ããã®ã¢ããã°ã¬ãŒã¶
ã©ãããŒé¢æ°ãå«ãã·ã§ã«ã¹ã¯ãªãã㯠2.x ããŒãžã§ã³ã§ bash 以å€ã®ã·ã§ã«ããµããŒãããããã«ãã®ååãå€æŽãããŸãããããªãã®èµ·åãã¡ã€ã«ã® source /usr/local/bin/virtualenvwrapper_bashrc
ã source /usr/local/bin/virtualenvwrapper.sh
ãžå€æŽããŠãã ããã
ã³ãã³ããªãã¡ã¬ã³ã¹Â¶
å šãŠã®ã³ãã³ãã¯æ¬¡ã®ããã«ã¿ãŒããã«äžã§äœ¿çšãããŸãã
ä»®æ³ç°å¢ã管çãã¶
mkvirtualenv¶
WORKON_HOME ã«æ°ããªä»®æ³ç°å¢ãäœæããŸãã
æ§æ:
mkvirtualenv [-a project_path] [-i package] [-r requirements_file] [virtualenv options] ENVNAME
-a
, -i
, -r
, -h
ãé€ããå
šãŠã®ã³ãã³ãã©ã€ã³ãªãã·ã§ã³ã¯ virtualenv
ãžçŽæ¥çã«æž¡ãããŸããæ°ããä»®æ³ç°å¢ã¯åæåãããåŸã«èªåçã«ã¢ã¯ãã£ãåãããŸãã
$ workon
$ mkvirtualenv mynewenv
New python executable in mynewenv/bin/python
Installing distribute.............................................
..................................................................
..................................................................
done.
(mynewenv)$ workon
mynewenv
(mynewenv)$
-a
ãªãã·ã§ã³ã¯ãæ¢åã®ãããžã§ã¯ããã£ã¬ã¯ããªã«æ°ããç°å¢ãé¢é£ä»ããã®ã«äœ¿ããŸãã
-i
ãªãã·ã§ã³ã¯ããã®ç°å¢ãäœæããåŸã«æå®ããããã±ãŒãžãã€ã³ã¹ããŒã«ã§ããŸã (ãã®ãªãã·ã§ã³ãç¹°ãè¿ã䜿ãããšã§è€æ°ã®ããã±ãŒãžãã€ã³ã¹ããŒã«ã§ããŸã) ã
-r
ãªãã·ã§ã³ã¯ãã€ã³ã¹ããŒã«ãããããã±ãŒãžäžèŠ§ãä¿åããããã¹ããã¡ã€ã«ãæå®ããã®ã«äœ¿ããŸãããã®åŒæ°ã®ãã¡ã€ã«å㯠pip -r
ãžæž¡ãããŠã€ã³ã¹ããŒã«ãè¡ãããŸãã
mktmpenv¶
WORKON_HOME
ãã£ã¬ã¯ããªã«æ°ããç°å¢ãäœæããŸãã
æ§æ:
mktmpenv [VIRTUALENV_OPTIONS]
äžæãªååãã〠virtualenv ç°å¢ãçæãããŸãã
$ mktmpenv
Using real prefix '/Library/Frameworks/Python.framework/Versions/2.7'
New python executable in 1e513ac6-616e-4d56-9aa5-9d0a3b305e20/bin/python
Overwriting 1e513ac6-616e-4d56-9aa5-9d0a3b305e20/lib/python2.7/distutils/__init__.py
with new content
Installing distribute...............................................
....................................................................
.................................................................done.
This is a temporary environment. It will be deleted when deactivated.
(1e513ac6-616e-4d56-9aa5-9d0a3b305e20) $
lsvirtualenv¶
å šãŠã®ä»®æ³ç°å¢ã衚瀺ããŸãã
æ§æ:
lsvirtualenv [-b] [-l] [-h]
-b | ããªãŒãã¢ãŒããåé·ãªåºåãç¡å¹ã«ãã |
-l | ãã³ã°ã¢ãŒããåé·ãªåºåãæå¹ã«ãã(ããã©ã«ã) |
-h | lsvirtualenv ã®ãã«ãã衚瀺ãã |
See also
showvirtualenv¶
1ã€ã®ä»®æ³ç°å¢ã®è©³çŽ°ã衚瀺ããŸãã
æ§æ:
showvirtualenv [env]
See also
rmvirtualenv¶
WORKON_HOME ã®ä»®æ³ç°å¢ãåé€ããŸãã
æ§æ:
rmvirtualenv ENVNAME
ã«ã¬ã³ãã®ä»®æ³ç°å¢ãåé€ããåã« deactivate ãå®è¡ããªããã°ãªããŸããã
(mynewenv)$ deactivate
$ rmvirtualenv mynewenv
$ workon
$
See also
cpvirtualenv¶
WORKON_HOME ã®ä»®æ³ç°å¢ãè€è£œããŸãã
æ§æ:
cpvirtualenv ENVNAME TARGETENVNAME
Note
ã³ããŒæäœã§äœæãããä»®æ³ç°å¢ã¯ åé 眮å¯èœ ã§ãã
$ workon
$ mkvirtualenv source
New python executable in source/bin/python
Installing distribute.............................................
..................................................................
..................................................................
done.
(source)$ cpvirtualenv source dest
Making script /Users/dhellmann/Devel/virtualenvwrapper/tmp/dest/bin/easy_install relative
Making script /Users/dhellmann/Devel/virtualenvwrapper/tmp/dest/bin/easy_install-2.6 relative
Making script /Users/dhellmann/Devel/virtualenvwrapper/tmp/dest/bin/pip relative
Script /Users/dhellmann/Devel/virtualenvwrapper/tmp/dest/bin/postactivate cannot be made relative (it's not a normal script that starts with #!/Users/dhellmann/Devel/virtualenvwrapper/tmp/dest/bin/python)
Script /Users/dhellmann/Devel/virtualenvwrapper/tmp/dest/bin/postdeactivate cannot be made relative (it's not a normal script that starts with #!/Users/dhellmann/Devel/virtualenvwrapper/tmp/dest/bin/python)
Script /Users/dhellmann/Devel/virtualenvwrapper/tmp/dest/bin/preactivate cannot be made relative (it's not a normal script that starts with #!/Users/dhellmann/Devel/virtualenvwrapper/tmp/dest/bin/python)
Script /Users/dhellmann/Devel/virtualenvwrapper/tmp/dest/bin/predeactivate cannot be made relative (it's not a normal script that starts with #!/Users/dhellmann/Devel/virtualenvwrapper/tmp/dest/bin/python)
(dest)$ workon
dest
source
(dest)$
ã¢ã¯ãã£ããªä»®æ³ç°å¢ãå¶åŸ¡ãã¶
workon¶
äœæ¥ããä»®æ³ç°å¢ãå€æŽããŸãã¯è¡šç€ºããŸãã
æ§æ:
workon [environment_name]
environment_name
ãäžããããªãå Žåã¯æšæºåºåã«å©çšå¯èœãªä»®æ³ç°å¢ã衚瀺ããŸãã
$ workon
$ mkvirtualenv env1
New python executable in env1/bin/python
Installing distribute.............................................
..................................................................
..................................................................
done.
(env1)$ mkvirtualenv env2
New python executable in env2/bin/python
Installing distribute.............................................
..................................................................
..................................................................
done.
(env2)$ workon
env1
env2
(env2)$ workon env1
(env1)$ echo $VIRTUAL_ENV
/Users/dhellmann/Devel/virtualenvwrapper/tmp/env1
(env1)$ workon env2
(env2)$ echo $VIRTUAL_ENV
/Users/dhellmann/Devel/virtualenvwrapper/tmp/env2
(env2)$
deactivate¶
ä»®æ³ç°å¢ããã·ã¹ãã ã«ã€ã³ã¹ããŒã«ããã Python ã®ããŒãžã§ã³ã«åãæ¿ããŸãã
æ§æ:
deactivate
Note
ãã®ã³ãã³ãã¯ãå®é㯠virtualenv ã®äžéšã§ããããŸãã« workon ãè¡ãããã«ã¢ã¯ãã£ãåã®ããã«ãåŠçã®ååŸã«ããã¯æ©èœãæäŸããããã«ã©ãããããŸãã
$ workon
$ echo $VIRTUAL_ENV
$ mkvirtualenv env1
New python executable in env1/bin/python
Installing distribute.............................................
..................................................................
..................................................................
done.
(env1)$ echo $VIRTUAL_ENV
/Users/dhellmann/Devel/virtualenvwrapper/tmp/env1
(env1)$ deactivate
$ echo $VIRTUAL_ENV
$
See also
ä»®æ³ç°å¢ãžç°¡åã«ç§»åãã¶
ã«ã¬ã³ãã®ã¢ã¯ãã£ãåãããä»®æ³ç°å¢å ãžç§»åããããã®ã·ã§ãŒãã«ãããæäŸãã2ã€ã®æ©èœããããŸãã
cdvirtualenv¶
$VIRTUAL_ENV
ãžã«ã¬ã³ãã¯ãŒã¯ãã£ã¬ã¯ããªã移åããŸãã
æ§æ:
cdvirtualenv [subdir]
cdvirtualenv
ãåŒã³åºããšãã«ã¬ã³ãã¯ãŒã¯ãã£ã¬ã¯ããªãä»®æ³ç°å¢($VIRTUAL_ENV
)ã®ããããžç§»åããŸãããªãã·ã§ã³ã®åŒæ°ã¯ãã®ãã¹ã«è¿œå ãããŠããµããã£ã¬ã¯ããªãžçŽæ¥çã«ç§»åããããšãã§ããŸãã
$ mkvirtualenv env1
New python executable in env1/bin/python
Installing distribute.............................................
..................................................................
..................................................................
done.
(env1)$ echo $VIRTUAL_ENV
/Users/dhellmann/Devel/virtualenvwrapper/tmp/env1
(env1)$ cdvirtualenv
(env1)$ pwd
/Users/dhellmann/Devel/virtualenvwrapper/tmp/env1
(env1)$ cdvirtualenv bin
(env1)$ pwd
/Users/dhellmann/Devel/virtualenvwrapper/tmp/env1/bin
cdsitepackages¶
$VIRTUAL_ENV
ã® site-packages
ãžã«ã¬ã³ãã¯ãŒã¯ãã£ã¬ã¯ããªã移åããŸãã
æ§æ:
cdsitepackages [subdir]
ä»®æ³ç°å¢ã® site-packages ãã£ã¬ã¯ããªãžã®æ£ç¢ºãªãã¹ã¯ Python ã®ããŒãžã§ã³ã«äŸåããã®ã§ã cdsitepackages
㯠cdvirtualenv lib/python${pyvers}/site-packages
ã®ã·ã§ãŒãã«ããã§ããããã«ãªãã·ã§ã³ã®åŒæ°ã¯çŽæ¥ç§»åãã site-packages
å
ã®éå±€æ§é ã®ãã£ã¬ã¯ããªãæå®ããããšãã§ããŸãã
$ mkvirtualenv env1
New python executable in env1/bin/python
Installing distribute.............................................
..................................................................
..................................................................
done.
(env1)$ echo $VIRTUAL_ENV
/Users/dhellmann/Devel/virtualenvwrapper/tmp/env1
(env1)$ cdsitepackages PyMOTW/bisect/
(env1)$ pwd
/Users/dhellmann/Devel/virtualenvwrapper/tmp/env1/lib/python2.6/site-packages/PyMOTW/bisect
lssitepackages¶
lssitepackages
ãåŒã³åºããšãã«ã¬ã³ãã®ã¢ã¯ãã£ãåãããä»®æ³ç°å¢ã® site-packages
ãã£ã¬ã¯ããªã®ã³ã³ãã³ãã衚瀺ããŸãã
æ§æ:
lssitepackages
$ mkvirtualenv env1
New python executable in env1/bin/python
Installing distribute.............................................
..................................................................
..................................................................
done.
(env1)$ $ workon env1
(env1)$ lssitepackages
distribute-0.6.10-py2.6.egg pip-0.6.3-py2.6.egg
easy-install.pth setuptools.pth
ãã¹ç®¡ç¶
add2virtualenv¶
ã«ã¬ã³ãã®ã¢ã¯ãã£ãåãããä»®æ³ç°å¢ã® Python ãã¹ãžæå®ãããã£ã¬ã¯ããªãè¿œå ããŸãã
æ§æ:
add2virtualenv directory1 directory2 ...
ã·ã¹ãã ã® site-pacakges
ãã£ã¬ã¯ããªã«ååšããªãã€ã³ã¹ããŒã«æžã¿ã®ããã±ãŒãžãããããã®ä»®æ³ç°å¢ã«ã€ã³ã¹ããŒã«ããããªãããã±ãŒãžãå
±æããããšãããããŸãã1ã€ã®è§£æ±ºæ¹æ³ã¯ãã®ä»®æ³ç°å¢ã® site-packages
ãã£ã¬ã¯ããªãžã·ã³ããªãã¯ãªã³ã¯ã匵ãããšã§ãããããã add2virtualenv
ã䜿çšã㊠site-packages
å
ã® .pth
ãã¡ã€ã«ãžãããã£ãããã±ãŒãžãå«ããããšã§ãPYTHONPATH ãžæ¡åŒµãã£ã¬ã¯ããªãè¿œå ããããšãç°¡åã§ãã
- Django ã®ãããªã倧ããªãããžã§ã¯ãã®ãœãŒã¹ããã§ãã¯ã¢ãŠããã
add2virtualenv path_to_source
ãå®è¡ããadd2virtualenv
ãå®è¡ãã- 䜿çšæ¹æ³ãšã«ã¬ã³ãã® “æ¡åŒµããã” ãã¹ãªã¹ãã衚瀺ããã
site-packages ãã£ã¬ã¯ããªå
ã® virtualenv_path_extensions.pth
ãšåä»ãããããã¹ãã¡ã€ã«ãžãã®ãã£ã¬ã¯ããªåãè¿œå ãããŸãã
James Bennett ãš Jannis Leidel ããæäŸããããã®ã«åºã¥ããŠããŸãã
toggleglobalsitepackages¶
ã¢ã¯ãã£ã㪠virtualenv ããã°ããŒãã«ã® Python site-packages
ãã£ã¬ã¯ããªã«ããããã±ãŒãžã«ã¢ã¯ã»ã¹ããããã©ãããå¶åŸ¡ããŸãã
æ§æ:
toggleglobalsitepackages [-q]
å®è¡ãããš virtualenv ã®æŽæ°åŸã®ç¶æ
ã衚瀺ããŸããé衚瀺ã«ããã«ã¯ -q
ãæå®ããŠãã ããã
$ mkvirtualenv env1
New python executable in env1/bin/python
Installing distribute.............................................
..................................................................
..................................................................
done.
(env1)$ toggleglobalsitepackages
Disabled global site-packages
(env1)$ toggleglobalsitepackages
Enabled global site-packages
(env1)$ toggleglobalsitepackages -q
(env1)$
ãããžã§ã¯ããã£ã¬ã¯ããªã®ç®¡ç¶
See also
mkproject¶
PROJECT_HOME ã«ãããžã§ã¯ããã£ã¬ã¯ããªãš WORKON_HOME ã«æ°ãã virtualenv ãäœæããŸãã
æ§æ:
mkproject [-t template] [virtualenv_options] ENVNAME
ãã³ãã¬ãŒããªãã·ã§ã³ã¯ãæ°ãããããžã§ã¯ããäœæããã®ã«äœ¿ããã³ãã¬ãŒããè€æ°æå®ã§ããŸãããã³ãã¬ãŒãã¯ã³ãã³ãã©ã€ã³ã§æå®ããé çªã§é©çšãããŸãããã®ä»ã®å
šãŠã®ãªãã·ã§ã³ã¯ããããžã§ã¯ããšåãååããã€ä»®æ³ç°å¢ãäœæããããã« mkvirtualenv
ã«æž¡ãããŸãã
$ mkproject myproj
New python executable in myproj/bin/python
Installing distribute.............................................
..................................................................
..................................................................
done.
Creating /Users/dhellmann/Devel/myproj
(myproj)$ pwd
/Users/dhellmann/Devel/myproj
(myproj)$ echo $VIRTUAL_ENV
/Users/dhellmann/Envs/myproj
(myproj)$
See also
setvirtualenvproject¶
æ¢åã® virtualenv ãæ¢åã®ãããžã§ã¯ãã«æçžããŸãã
æ§æ:
setvirtualenvproject [virtualenv_path project_path]
setvirtualenvproject
ãžã®åŒæ°ã¯ãvirtualenv ãšãããžã§ã¯ããã£ã¬ã¯ããªãžã®ãã«ãã¹ã§ããä»®æ³ç°å¢ã®ã¢ã¯ãã£ãåã workon
ã§è¡ããšãã«ããã®ãããžã§ã¯ããã¢ã¯ãã£ãåãããããã«é£æºããŸãã
$ mkproject myproj
New python executable in myproj/bin/python
Installing distribute.............................................
..................................................................
..................................................................
done.
Creating /Users/dhellmann/Devel/myproj
(myproj)$ mkvirtualenv myproj_new_libs
New python executable in myproj/bin/python
Installing distribute.............................................
..................................................................
..................................................................
done.
Creating /Users/dhellmann/Devel/myproj
(myproj_new_libs)$ setvirtualenvproject $VIRTUAL_ENV $(pwd)
åŒæ°ãæå®ããªãå Žåã¯ãã«ã¬ã³ãã® virtualenv ãšã«ã¬ã³ããã£ã¬ã¯ããªãæå®ããããšèŠãªããŸãã
ä»»æã®æ°ã® virtualenv ããPython ãŸãã¯ãã®ä»ã®ãã¹ãåãã®äŸåé¢ä¿ããã£ãããŒãžã§ã³éã§åãæ¿ããããããã«ãåããããžã§ã¯ããã£ã¬ã¯ããªãåç §ã§ããŸãã
cdproject¶
ã«ã¬ã³ãã®ã¯ãŒã¯ãã£ã¬ã¯ããªãããã¢ã¯ãã£ã㪠virtualenv ã®ãããžã§ã¯ããã£ã¬ã¯ããªãšããŠæå®ãããã£ã¬ã¯ããªã«å€æŽããŸãã
æ§æ:
cdproject
virtualenvwrapper ãã«ã¹ã¿ãã€ãºãã¶
virtualenvwrapper ã¯ä»®æ³ç°å¢ãäœæã»åé€ããããç°å¢éã移åããããããšãã«ãèšå®å 容ãã·ã§ã«ç°å¢ãŸãã¯ãã®ä»ã®èšå®å€ãå€æŽã§ããè€æ°ã®ããã¯ãã€ã³ããè¿œå ããŸãããããã£ãããã¯æ©èœã¯2ã€ã®æ¹æ³ã§æäŸãããŠããŸãã
ãŠãŒã¶ã«ã¹ã¿ãã€ãºÂ¶
ãšã³ããŠãŒã¶ã®ã«ã¹ã¿ãã€ãºã¹ã¯ãªãã㯠èªã¿èŸŒã¿ (ã·ã§ã«ç°å¢ãå€æŽã§ãã) ãããããé©åãªæ¡ä»¶ã§å€éšããã°ã©ã ã®ããã« å®è¡ ããããã®ã©ã¡ããã§ãã
å
šãŠã®ç°å¢ã«é©çšãããã°ããŒãã«ã¹ã¯ãªããã¯ã VIRTUALENVWRAPPER_HOOK_DIR ã§æå®ãããã£ã¬ã¯ããªã«çœ®ããŸããããŒã«ã«ã¹ã¯ãªãã㯠virtualenv ã® bin
ãã£ã¬ã¯ããªã«çœ®ããŸãã
get_env_details¶
ã°ããŒãã«/ããŒã«ã«: äž¡æ¹ åŒæ°: ç°å¢å èªã¿èŸŒã¿/å®è¡: å®è¡
$VIRTUALENVWRAPPER_HOOK_DIR/get_env_details
㯠workon
ãåŒæ°ç¡ãã§å®è¡ããããšãã«å®è¡ãããŸãããããŠãä»®æ³ç°å¢ã®ãªã¹ãã衚瀺ããŸããä»®æ³ç°å¢ã®ååã衚瀺ãããåŸã§ããã®ããã¯ã¯ç°å¢æ¯ã«äžåºŠå®è¡ãããŠããã®ç°å¢ã«é¢ããè¿œå æ
å ±ã衚瀺ããŸãã
initialize¶
ã°ããŒãã«/ããŒã«ã«: ã°ããŒãã« åŒæ°: ç¡ã èªã¿èŸŒã¿/å®è¡: èªã¿èŸŒã¿
ããªãã®ç°å¢ã« virtualenvwrapper.sh
ãèªã¿èŸŒããšãã« $VIRTUALENVWRAPPER_HOOK_DIR/initialize
ãèªã¿èŸŒãŸããŸããvirtualenvwrapper ãæå¹ã«ãªããšãã«ã°ããŒãã«ãªèšå®ã調æŽããããã«äœ¿çšããŠãã ããã
premkvirtualenv¶
ã°ããŒãã«/ããŒã«ã«: ã°ããŒãã« åŒæ°: æ°ããç°å¢å èªã¿èŸŒã¿/å®è¡: å®è¡
$VIRTUALENVWRAPPER_HOOK_DIR/premkvirtualenv
ã¯ä»®æ³ç°å¢ãäœæãããåŸã§å€éšããã°ã©ã ã®ããã«å®è¡ãããŸãããã«ã¬ã³ãã®ç°å¢ãæ°ããç°å¢ãžåãæ¿ããåã«å®è¡ãããŸãããã®ã¹ã¯ãªããã®ã«ã¬ã³ãã¯ãŒã¯ãã£ã¬ã¯ããªã¯ $WORKON_HOME
ã§ããã®ã¹ã¯ãªãããžã®åŒæ°ãšããŠæ°ããç°å¢ã®ååãæž¡ãããŸãã
postmkvirtualenv¶
ã°ããŒãã«/ããŒã«ã«: ã°ããŒãã« åŒæ°: ç¡ã èªã¿èŸŒã¿/å®è¡: èªã¿èŸŒã¿
$VIRTUALENVWRAPPER_HOOK_DIR/postmkvirtualenv
ã¯ãæ°ããç°å¢ãäœæãããŠã¢ã¯ãã£ãåãããåŸã§èªã¿èŸŒãŸããŸãã -a
<project_path> ãã©ã°ãæå®ãããå Žåããã®ã¹ã¯ãªãããèªã¿èŸŒãåã«ãããžã§ã¯ããã£ã¬ã¯ããªãžã®ãªã³ã¯ãèšå®ããŸãã
precpvirtualenv¶
ã°ããŒãã«/ããŒã«ã«: ã°ããŒãã« åŒæ°: ãªãªãžãã«ã®ç°å¢åãæ°ããç°å¢å èªã¿èŸŒã¿/å®è¡: å®è¡
$VIRTUALENVWRAPPER_HOOK_DIR/precpvirtualenv
ã¯å
ã®ç°å¢ãè€è£œãããŠåé
眮å¯èœã«ãªããšãã«å€éšããã°ã©ã ã®ããã«å®è¡ãããŸããã premkvirtualenv
ããã¯ãå®è¡ãããåããããã¯ã«ã¬ã³ãã®ç°å¢ãæ°ããç°å¢ãžåãæ¿ããåã«å®è¡ãããŸãããã®ã¹ã¯ãªããã®ã«ã¬ã³ãã¯ãŒã¯ãã£ã¬ã¯ããªã¯ $WORKON_HOME
ã§ããã®ã¹ã¯ãªãããžã®åŒæ°ãšããŠå
ã®ç°å¢åãšæ°ããç°å¢åãæž¡ãããŸãã
postcpvirtualenv¶
ã°ããŒãã«/ããŒã«ã«: ã°ããŒãã« åŒæ°: ç¡ã èªã¿èŸŒã¿/å®è¡: èªã¿èŸŒã¿
$VIRTUALENVWRAPPER_HOOK_DIR/postcpvirtualenv
ã¯æ°ããç°å¢ãäœæãããŠã¢ã¯ãã£ãåãããåŸã§èªã¿èŸŒãŸããŸãã
preactivate¶
ã°ããŒãã«/ããŒã«ã«: ã°ããŒãã«ãããŒã«ã« åŒæ°: ç°å¢å èªã¿èŸŒã¿/å®è¡: å®è¡
ã°ããŒãã«ã® $VIRTUALENVWRAPPER_HOOK_DIR/preactivate
ã¹ã¯ãªããã¯æ°ããä»®æ³ç°å¢ãæå¹ã«ãªãåã«å®è¡ãããŸãããã®ç°å¢åã¯1çªç®ã®åŒæ°ãšããŠæž¡ãããŸãã
ããŒã«ã«ã® $VIRTUAL_ENV/bin/preactivate
ããã¯ã¯æ°ããä»®æ³ç°å¢ãæå¹ã«ãªãåã«å®è¡ãããŸãããã®ç°å¢åã¯1çªç®ã®åŒæ°ãšããŠæž¡ãããŸãã
postactivate¶
ã°ããŒãã«/ããŒã«ã«: ã°ããŒãã«ãããŒã«ã« åŒæ°: ç¡ã èªã¿èŸŒã¿/å®è¡: èªã¿èŸŒã¿
ã°ããŒãã«ã® $VIRTUALENVWRAPPER_HOOK_DIR/postactivate
ã¹ã¯ãªããã¯æ°ããä»®æ³ç°å¢ãæå¹ã«ãªã£ãåŸã§èªã¿èŸŒãŸããŸãã $VIRTUAL_ENV
ã¯ãã®ã¹ã¯ãªãããå®è¡ããããšãã«æ°ããç°å¢ãåç
§ããŸãã
ãã®ãµã³ãã«ã¹ã¯ãªãã㯠_OLD_VIRTUAL_PS1
ã䜿çšããŠä»®æ³ç°å¢ã®ååãšå€ã PS1 ååã®éã«ã¹ããŒã¹ãè¿œå ããŸãã
PS1="(`basename \"$VIRTUAL_ENV\"`) $_OLD_VIRTUAL_PS1"
ããŒã«ã«ã® $VIRTUAL_ENV/bin/postactivate
ã¹ã¯ãªããã¯æ°ããä»®æ³ç°å¢ãæå¹ã«ãªã£ãåŸã§èªã¿èŸŒãŸããŸãã $VIRTUAL_ENV
ã¯ãã®ã¹ã¯ãªãããå®è¡ããããšãã«æ°ããç°å¢ãåç
§ããŸãã
ãã® PyMOTW ç°å¢ã®ãµã³ãã«ã¯ PyMOTW ã«å«ãŸãããœãŒã¹ããªãŒãåç §ã㊠PATH å€æ°ãšã«ã¬ã³ãã¯ãŒã¯ãã£ã¬ã¯ããªãå€æŽããŸãã
pymotw_root=/Users/dhellmann/Documents/PyMOTW
cd $pymotw_root
PATH=$pymotw_root/bin:$PATH
predeactivate¶
ã°ããŒãã«/ããŒã«ã«: ã°ããŒãã«ãããŒã«ã« åŒæ°: ç¡ã èªã¿èŸŒã¿/å®è¡: èªã¿èŸŒã¿
ããŒã«ã«ã® $VIRTUAL_ENV/bin/predeactivate
ã¹ã¯ãªããã¯ã«ã¬ã³ãã®ä»®æ³ç°å¢ãéã¢ã¯ãã£ãåãããåã«èªã¿èŸŒãŸããŸãããããŠãããªãã®ç°å¢ã®èšå®ãã¯ãªã¢ããããç¡å¹ã«ããããã«äœ¿çšãããŸãã $VIRTUAL_ENV
ã¯ãã®ã¹ã¯ãªãããå®è¡ããããšãã«å€ãç°å¢ãåç
§ããŸãã
ã°ããŒãã«ã® $VIRTUALENVWRAPPER_HOOK_DIR/predeactivate
ã¹ã¯ãªããã¯ã«ã¬ã³ãã®ä»®æ³ç°å¢ãéã¢ã¯ãã£ãåãããåã«èªã¿èŸŒãŸããŸãã $VIRTUAL_ENV
ã¯ãã®ã¹ã¯ãªãããå®è¡ããããšãã«å€ãç°å¢ãåç
§ããŸãã
postdeactivate¶
ã°ããŒãã«/ããŒã«ã«: ã°ããŒãã«ãããŒã«ã« åŒæ°: ç¡ã èªã¿èŸŒã¿/å®è¡: èªã¿èŸŒã¿
$VIRTUAL_ENV/bin/postdeactivate
ã¹ã¯ãªããã¯ã«ã¬ã³ãã®ä»®æ³ç°å¢ãéã¢ã¯ãã£ãåãããåã«èªã¿èŸŒãŸããŸãããããŠãããªãã®ç°å¢ã®èšå®ãã¯ãªã¢ããããç¡å¹ã«ããããã«äœ¿çšãããŸããéã¢ã¯ãã£ãåãããç°å¢ãžã®ãã¹ã¯ $VIRTUALENVWRAPPER_LAST_VIRTUALENV
ã§ã®ã¿æå¹ã§ãã
prermvirtualenv¶
ã°ããŒãã«/ããŒã«ã«: ã°ããŒãã« åŒæ°: ç°å¢å èªã¿èŸŒã¿/å®è¡: å®è¡
$VIRTUALENVWRAPPER_HOOK_DIR/prermvirtualenv
ã¹ã¯ãªããã¯ä»®æ³ç°å¢ãåé€ãããåã«å€éšã³ãã³ãã®ããã«å®è¡ãããŸãããã®ã¹ã¯ãªãããžã®åŒæ°ãšããŠãã®ç°å¢ã®ãã£ã¬ã¯ããªã«å¯Ÿãããã«ãã¹ãæž¡ãããŸãã
postrmvirtualenv¶
ã°ããŒãã«/ããŒã«ã«: ã°ããŒãã« åŒæ°: ç°å¢å èªã¿èŸŒã¿/å®è¡: å®è¡
$VIRTUALENVWRAPPER_HOOK_DIR/postrmvirtualenv
ã¹ã¯ãªããã¯ä»®æ³ç°å¢ãåé€ãããåŸã§å€éšã³ãã³ãã®ããã«å®è¡ãããŸãããã®ã¹ã¯ãªãããžã®åŒæ°ãšããŠãã®ç°å¢ã®ãã£ã¬ã¯ããªã«å¯Ÿãããã«ãã¹ãæž¡ãããŸãã
premkproject¶
ã°ããŒãã«/ããŒã«ã«: ã°ããŒãã« åŒæ°: æ°ãããããžã§ã¯ãå èªã¿èŸŒã¿/å®è¡: å®è¡
$WORKON_HOME/premkproject
ã¯ãä»®æ³ç°å¢ãäœæãããŠã«ã¬ã³ãã®ç°å¢ãæ°ããç°å¢ãæãããã«åãæ¿ãã£ãåŸã§ãå€éšããã°ã©ã ãšããŠå®è¡ãããŸãã
äœãããã®ã¿ã€ãã³ã°ã¯æ°ãããããžã§ã¯ããã£ã¬ã¯ããªãäœæãããåã§ãã
ãã®ã¹ã¯ãªããã®ã«ã¬ã³ãã®ã¯ãŒã¯ãã£ã¬ã¯ããªã¯ $PROJECT_HOME
ãšãªããæ°ãããããžã§ã¯ãåããã®ã¹ã¯ãªããã®åŒæ°ãšããŠæž¡ãããŸãã
postmkproject¶
ã°ããŒãã«/ããŒã«ã«: ã°ããŒãã« åŒæ°: ç¡ã èªã¿èŸŒã¿/å®è¡: èªã¿èŸŒã¿
$WORKON_HOME/postmkproject
ã¯ãæ°ããç°å¢ãšãããžã§ã¯ããã£ã¬ã¯ããªãäœæãã㊠virtualenv ãã¢ã¯ãã£ãåãããåŸã§èªã¿èŸŒãŸããŸããã«ã¬ã³ãã®ã¯ãŒã¯ãã£ã¬ã¯ããªã¯ãããžã§ã¯ããã£ã¬ã¯ããªã§ãã
virtualenvwrapper ãæ¡åŒµãã¶
éçºç°å¢ãã«ã¹ã¿ãã€ãºããããã«èªäœã§è§£æ±ºããŠããé·ãçµéšãããå ±éã¿ã¹ã¯ãèªååããŠãäœåºŠãç¹°ãè¿ãèã ãããããªäœæ¥ãåãé€ãæ©èœãã©ãã»ã©ã®äŸ¡å€ããã€ãåãããŸããã倧工ã¯æ²»å ·ãçµã¿ç«ãŠããœãããŠã§ã¢éçºè ã¯ã·ã§ã«ã¹ã¯ãªãããæžããŸããvirtualenvwrapper ã¯éã«ãªããŸãããæ±ããæ¹æ³ã§åäœããããã«ããŒã«ãä¿®æ£ããè·äººãå±ãŸãäŒçµ±ãåãç¶ãã§ããŸãã
ç¹°ãè¿ãè¡ãæåã®æäœãåãé€ãããéçºã¯ãŒã¯ãããŒãå¹çåããããã«æäŸãããããã¯ã䜿çšããŠãã ãããäŸãã°ãæåŸã«ç·šéãããã»ãã·ã§ã³ãããã¡ã€ã«ãåèªã¿èŸŒã¿ããããã« IDE ã«ãããžã§ã¯ããã¡ã€ã«ãèªã蟌ãŸãããæé远跡èšé²ã管çããããããã¯ã¢ããªã±ãŒã·ã§ã³ãµãŒãã®éçºããŒãžã§ã³ãèµ·åã»åæ¢ããããã« pre_activate ã post_activate ããã¯ãèšå®ããŠãã ããã initialize 㯠virtualenvwrapper ã«å¯Ÿããããã¯ãå®å šã«æ°ããã³ãã³ããè¿œå ããããã®ããã¯ã§ãããã㊠pre_mkvirtualenv ã post_mkvirtualenv ãšãã£ãããã¯ã¯ããããã®æ°ããéçºç°å¢ãžåºæ¬çãªå¿ éåãã€ã³ã¹ããŒã«ããããœãŒã¹ã³ãŒããªããžããªã®åæåããã®ä»ã®æ°ããªãããžã§ã¯ãã®èšå®ãè¡ããšãã£ãæ©äŒãäžããŸãã
virtualenvwrapper ããããã£ãããšãå®è¡ã§ããããã«ããªãã®ã³ãŒããã¢ã¿ããããæ¹æ³ã2ã€ãããŸãããšã³ããŠãŒã¶ã¯ã·ã§ã«ã¹ã¯ãªããããå人çãªã«ã¹ã¿ãã€ãºãæœããããã°ã©ã ã䜿çšã§ããŸã(ãŠãŒã¶ã«ã¹ã¿ãã€ãº ãåç §)ãããã«æ¡åŒµæ©èœã¯ãã·ã¹ãã ãšéçºè éã§å ±éã®æ¯ãèããå ±æã§ããããã«ãã Distribute ãšã³ããªãã€ã³ã ã䜿çšã㊠Python ã§å®è£ ããããšãã§ããŸãã
æ¡åŒµæ©èœãå®çŸ©ãã¶
Note
virtualenvwrapper ã¯ãŠãŒã¶ã®ã«ã¹ã¿ã ã¹ã¯ãªãããäœæããŠå®è¡ããããšããã©ã°ã€ã³ã§å®çŸããŸã(user_scripts)ã次ã®ãµã³ãã«ã¯ãããã£ããã©ã°ã€ã³ã®å®è£ ã玹ä»ããŸãã
ã³ãŒãã®æ§æ¶
virtualenvwrapper
ã® Python ããã±ãŒãžã¯ åå空éããã±ãŒãž ã§ããè€æ°ã®ã©ã€ãã©ãªãäžç·ã«é
åžãããŠããªãã£ããåããã£ã¬ã¯ããªå
ã«ã€ã³ã¹ããŒã«ãããŠããªãã£ããšããŠãããã®ããã±ãŒãžå
ãžã€ã³ã¹ããŒã«ã§ããŸããæ¡åŒµæ©èœã¯æ¬¡ã®ããã«ãœãŒã¹ããªãŒãèšå®ããããšã§ virtualenvwrapper
ã®åå空éã(ãªãã·ã§ã³ã§)䜿çšããããšãåºæ¥ãŸãã
- virtualenvwrapper/
- __init__.py
- user_scripts.py
ãã㊠__init__.py
ã«æ¬¡ã®ã³ãŒããå«ããŸãã
"""virtualenvwrapper module
"""
__import__('pkg_resources').declare_namespace(__name__)
Note
æ¡åŒµæ©èœã¯ã©ããªããã±ãŒãžãããèªã¿èŸŒãŸããã®ã§ virtualenvwrapper
ã®åå空éã䜿çšããå¿
èŠã¯ãããŸããã
æ¡åŒµ API¶
ããã±ãŒãžãäœæããåŸã®æ¬¡ã®ã¹ããããšããŠãæ¡åŒµã³ãŒããä¿æããã¢ãžã¥ãŒã«ãäœæããŸããäŸãã° virtualenvwrapper/user_scripts.py
ã§ãããã®ã¢ãžã¥ãŒã«ã¯å®éã®æ¡åŒµæ©èœã®ãšã³ããªãã€ã³ããå«ã¿ãŸãããµããŒãããã³ãŒããå«ããããããæšæºã® Python ã³ãŒãã®æ§æãã¯ããã¯ãå©çšããŠã€ã³ããŒããããŸãã
API ã¯å šãŠã®æ¡åŒµãã€ã³ãã§åãã§ããããããã¯1ã€ã®åŒæ°ãã€ãŸãã³ãã³ãã©ã€ã³äžã§ããã¯ããŒããžæž¡ãããæååã®ãªã¹ããåãåã Python é¢æ°ã䜿çšããŸãã
def function_name(args):
# args is a list of strings passed to the hook loader
åŒæ°ãªã¹ãã®ã³ã³ãã³ãã¯æ¬¡ã®æ¡åŒµãã€ã³ãæ¯ã«å®çŸ©ãããŸã(æ¡åŒµãã€ã³ã ãåç §)ã
æ¡åŒµæ©èœã®èµ·å¶
ãã©ã°ã€ã³ã¯2ã€ã®æ¹æ³ã§ããããã®ããã¯ãã¢ã¿ããã§ããŸããããã©ã«ãã¯çŽæ¥çã«äœããã®åŠçãå®è¡ããé¢æ°ãæã¡ãŸããäŸãã°ããŠãŒã¶ã¹ã¯ãªãããã©ã°ã€ã³ã® initialize()
é¢æ°ã¯ virtualenvwrapper.sh
ãèªã¿èŸŒãŸãããšãã«ããã©ã«ããŠãŒã¶ã¹ã¯ãªãããäœæããŸãã
def initialize(args):
for filename, comment in GLOBAL_HOOKS:
make_hook(os.path.join('$WORKON_HOME', filename), comment)
return
æ¡åŒµæ©èœããŠãŒã¶ç°å¢ã®ã¢ããããŒããå¿ èŠãšããã±ãŒã¹ããããŸã(äŸãã°ãã«ã¬ã³ãã¯ãŒã¯ãã£ã¬ã¯ããªãå€æŽããããç°å¢å€æ°ãèšå®ããç)ããŠãŒã¶ç°å¢ã«å¯Ÿããå€æŽã¯ãŠãŒã¶ã®ã«ã¬ã³ãã·ã§ã«å ã§è¡ãããªããã°ãªãããç¬ç«ããããã»ã¹ã§å®è¡ã§ããŸããããŠãŒã¶ã®ã·ã§ã«ããã»ã¹ã§å®è¡ããã³ãŒããæã€ããã«ãæ¡åŒµæ©èœã¯å®è¡ãããã·ã§ã«æ§æã®ããã¹ããè¿ãããã¯é¢æ°ãå®çŸ©ã§ããŸãããããã® source ããã¯ã¯åãååãæã€éåžžã®ããã¯ã®åŸã§å®è¡ãããŸãããããŠããã®ããã¯å éšã§åŠçãè¡ã£ãŠã¯ãããŸããã
ãŠãŒã¶ã¹ã¯ãªãããã©ã°ã€ã³ã® initialize_source()
ããã¯ã¯ãã°ããŒãã«ãªåæåã¹ã¯ãªããã調ã¹ãŠã«ã¬ã³ãã®ã·ã§ã«ããã»ã¹ã§ãã®ã¹ã¯ãªãããå®è¡ãããŸãã
def initialize_source(args):
return """
#
# Run user-provided scripts
#
[ -f "$WORKON_HOME/initialize" ] && source "$WORKON_HOME/initialize"
"""
Warning
æ¡åŒµæ©èœã¯ãŠãŒã¶ã®ã¯ãŒã¯ã·ã§ã«ãå€æŽããŠããã®ã§ãäºæããªãæ¢åå€æ°ã®äžæžãã«ããç°å¢ãæ±æãããªãããã«æ³šæããªããã°ãªããŸãããã§ããã ãäžæçãªå€æ°ãäœæããã«ãå¿
èŠãªãšããã§äžæãªååã䜿çšããŠãã ãããæ¥é èŸãšããŠæ¡åŒµåãä»ãå€æ°ã¯åå空éã管çããã®ã«è¯ãæ¹æ³ã§ããäŸãã°ã temp_file
ã§ã¯ãªã user_scripts_temp_file
ã䜿çšããŠãã ãããäžæçãªå€æ°ã¯å¿
èŠãªããªã£ããšãã« unset
ã§è§£æŸããŠãã ããã
Warning
virtualenvwrapper ã¯æ§æãå°ãéãè€æ°ã®ã·ã§ã«(bash, sh, zsh, ksh)ã§åäœããŸãããœãŒã¹ããã¯ãå®çŸ©ãããšãã«ã¢ã«ãŠã³ãå
ã«ãã®ç§»æ€æ§ãèæ
®ããŠãã ãããæãç°¡åãªæ§æã®ã¿ã䜿çšããããšã§æ®éã¯åé¡ãããŸããããæ±ããçµæãåŸãããã«ã¯å¯äžã®æ¹æ³ãããªãã±ãŒã¹ã«ãããŠãéãæ§æãçæãã SHELL
ç°å¢å€æ°ã調ã¹ãå¯èœæ§ããããŸãã
ãšã³ããªãã€ã³ããç»é²ãã¶
ãã©ã°ã€ã³ã§å®çŸ©ãããé¢æ°ã¯ virtualenvwrapper ã®ããã¯ããŒããèŠã€ããããããã« ãšã³ããªãã€ã³ã ãšããŠç»é²ããå¿
èŠããããŸãã Distribute ãšã³ããªãã€ã³ãã¯é¢æ°ãå®è£
ããããã±ãŒãžã§ãã®é¢æ°ã«å¯Ÿãããšã³ããªãã€ã³ãã®ååããããã³ã°ããããšã«ããããã®ããã±ãŒãžã® setup.py
ã§èšå®ãããŸãã
ãã® virtualenvwrapper ã® setup.py
ã®äžéšã¯ initialize()
ã initialize_source()
ãšã³ããªãã€ã³ãã®èšå®æ¹æ³ã説æããŸãã
# Bootstrap installation of Distribute
import distribute_setup
distribute_setup.use_setuptools()
from setuptools import setup
setup(
name = 'virtualenvwrapper',
version = '2.0',
description = 'Enhancements to virtualenv',
# ... details omitted ...
namespace_packages = [ 'virtualenvwrapper' ],
entry_points = {
'virtualenvwrapper.initialize': [
'user_scripts = virtualenvwrapper.user_scripts:initialize',
],
'virtualenvwrapper.initialize_source': [
'user_scripts = virtualenvwrapper.user_scripts:initialize_source',
],
# ... details omitted ...
},
)
setup()
ãžã® entry_points
åŒæ°ã¯ãšã³ããªãã€ã³ãã®æå®åã衚瀺ãããšã³ããªãã€ã³ã ã°ã«ãŒãå ããããã³ã°ãããã£ã¯ã·ã§ããªã§ããéãã°ã«ãŒãåã¯ããããã®æ¡åŒµãã€ã³ãã®ããã« virtualenvwrapper ã«ããå®çŸ©ãããŸã(æ¡åŒµãã€ã³ã ãåç
§)ã
ãšã³ããªãã€ã³ãæå®å㯠name = package.module:function
ãšããæ§æã®æååã§ããæ
£äŸãããšã³ããªãã€ã³ãã® åå ã¯ãã©ã°ã€ã³ã®ååãä»ããŸãããå¿
é ã ãšããããã§ã¯ãããŸãã (ãã®ååã䜿ããªããŠãæ§ããŸãã) ã
ããã¯ããŒã¶
æ¡åŒµæ©èœã¯ virtualenvwrapper.hook_loader
ã§å®è£
ãããã³ãã³ãã©ã€ã³ã¢ããªã±ãŒã·ã§ã³ãéããŠå®è¡ãããŸãã virtualenvwrapper.sh
ããã©ã€ããªã®åŒã³åºãã§ããããŠãŒã¶ã¯ãã®ã¢ããªã±ãŒã·ã§ã³ãçŽæ¥çã«å®è¡ããå¿
èŠã¯ãªãã®ã§ãåå²ãããã¹ã¯ãªããã¯ã€ã³ã¹ããŒã«ãããŸããããã®ä»£ããããã®ã¢ããªã±ãŒã·ã§ã³ãå®è¡ããã«ã¯ã€ã³ã¿ãŒããªã¿ã« -m
ãªãã·ã§ã³ãæå®ããŠãã ããã
$ python -m virtualenvwrapper.hook_loader -h
Usage: virtualenvwrapper.hook_loader [options] <hook> [<arguments>]
Manage hooks for virtualenvwrapper
Options:
-h, --help show this help message and exit
-s, --source Print the shell commands to be run in the current
shell
-l, --list Print a list of the plugins available for the given
hook
-v, --verbose Show more information on the console
-q, --quiet Show less information on the console
-n NAMES, --name=NAMES
Only run the hook from the named plugin
initialize ããã¯ã®ããã«ãã®æ¡åŒµæ©èœãå®è¡ããã«ã¯æ¬¡ã®ããã«ããŸãã
$ python -m virtualenvwrapper.hook_loader -v initialize
initialize ããã¯ã®ããã«ã·ã§ã«ã³ãã³ããèªã¿èŸŒãã«ã¯æ¬¡ã®ããã«ããŸãã
$ python -m virtualenvwrapper.hook_loader --source initialize
å®éã¯ãããã¯ããŒããçŽæ¥ããã¯ãå®è¡ãããããäž¡æ¹ã®ã¢ãŒãã§ããã¯ãå®è¡ããã·ã§ã«é¢æ° virtualenvwrapper_run_hook
ã䜿çšããæ¹ããã£ãšäŸ¿å©ã§ãã
$ virtualenvwrapper_run_hook initialize
ã·ã§ã«é¢æ°ã«äžããããå šãŠã®åŒæ°ã¯ããã¯ããŒããžçŽæ¥æž¡ãããŸãã
ãã®ã³ã°Â¶
ããã¯ããŒãã¯ãã°ã¡ãã»ãŒãžã $WORKON_HOME/hook.log
ã«æžã蟌ãããã«èšå®ããŸãããŸããã°ã¡ãã»ãŒãžã¯åé·ãã©ã°ã«ããæšæºãšã©ãŒã«ãåºåãããŸããããã©ã«ãã§ã¯ããã°ã¡ãã»ãŒãžã¯ info ããã以äžã®ã¬ãã«ãæšæºãšã©ãŒãžåºåããã debug ããã以äžããã°ãã¡ã€ã«ãžæžã蟌ãŸããŸãããã®æ¹æ³ã§ãã®ã³ã°ã䜿çšããããšã§ãŠãŒã¶ã«æ¡åŒµæ©èœã®åé·æ§ãå¶åŸ¡ãã䟿å©ãªä»çµã¿ãæäŸããŸãã
æ¡åŒµæ©èœãããã®ã³ã°ã䜿çšããã«ã¯ãåçŽã«ãã¬ãŒãã€ã³ã¹ã¿ã³ã¹åããŠããã°ã¡ãã»ãŒãžãšå
±ã«ãã® info()
, debug()
ããã®ä»ã®ã¡ãœãããåŒã³åºããŠãã ããã
import logging
log = logging.getLogger(__name__)
def pre_mkvirtualenv(args):
log.debug('pre_mkvirtualenv %s', str(args))
# ...
æ¡åŒµãã€ã³ã¶
ãã€ãã£ããã©ã°ã€ã³ã®æ¡åŒµãã€ã³ãã®ååã¯è€æ°ã®ããŒããæã€åœåèŠå virtualenvwrapper.(pre|post)_<event>[_source]
ã«åŸããŸãã <event> ã¯æ¡åŒµæ©èœãåŒãèµ·ãã virtualenvwrapper ãŸãã¯ãŠãŒã¶ã«ããã¢ã¯ã·ã§ã³ã§ãã (pre|post)
ã¯ãã®æ¡åŒµæ©èœã®åŒã³åºããã€ãã³ãã®åãåŸãã®ã©ã¡ãããæããŸããæ¥å°ŸèŸ _source
ã¯çŽæ¥ã¢ã¯ã·ã§ã³ãåãåããã«ã·ã§ã«ã¹ã¯ãªããã®ã³ãŒããè¿ãæ¡åŒµæ©èœã«è¿œå ãããŸã(ãŠãŒã¶ç°å¢ãå€æŽãã ãåç
§)ã
get_env_details¶
virtualenvwrapper.get_env_details
ããã¯ã¯ workon
ãåŒæ°ç¡ãã§å®è¡ããããšãã«å®è¡ãããŸãããããŠãä»®æ³ç°å¢ã®ãªã¹ãã衚瀺ããŸããä»®æ³ç°å¢ã®ååã衚瀺ãããåŸã§ããã®ããã¯ã¯ç°å¢æ¯ã«äžåºŠå®è¡ãããŠããã®ç°å¢ã«é¢ããè¿œå æ
å ±ã衚瀺ããŸãã
initialize¶
virtualenvwrapper.initialize
ããã¯ã¯ virtualenvwrapper.sh
ãç°å¢ã«èªã¿èŸŒãŸããæ¯ã«å®è¡ãããŸããinitialize ããã¯ã¯èšå®ãã¡ã€ã«ã®ãã³ãã¬ãŒããã€ã³ã¹ããŒã«ããããé©åãªãã©ã°ã€ã³æäœã®ããã«ã·ã¹ãã ãæŽåããããã«äœ¿çšãããŸãã
pre_mkvirtualenv¶
virtualenvwrapper.pre_mkvirtualenv
ããã¯ã¯ä»®æ³ç°å¢ãäœæãããåŸã§å®è¡ãããŸãããæ°ããç°å¢ãã¢ã¯ãã£ãåãããåã«å®è¡ãããŸãããã®ããã¯ãå®è¡ããããšãã®ããã«ã«ã¬ã³ãã¯ãŒã¯ãã£ã¬ã¯ããªã¯ $WORKON_HOME
ã§ã1ã€ã®åŒæ°ãšããŠæ°ããç°å¢ã®ååãæž¡ãããŸãã
post_mkvirtualenv¶
virtualenvwrapper.post_mkvirtualenv
ããã¯ã¯æ°ããä»®æ³ä»®æ³ãäœæãããŠãã¢ã¯ãã£ãåãããåŸã§å®è¡ãããŸãã $VIRTUAL_ENV
ã¯æ°ããç°å¢ãæãããã«ã»ãããããŸãã
pre_activate¶
virtualenvwrapper.pre_activate
ããã¯ã¯ä»®æ³ç°å¢ãæå¹ã«ãªãåã«å®è¡ãããŸããç°å¢ã®ååã¯1çªç®ã®åŒæ°ãšããŠæž¡ãããŸãã
post_activate¶
virtualenvwrapper.post_activate
ããã¯ã¯ä»®æ³ç°å¢ãæå¹ã«ãªã£ãåŸã§å®è¡ãããŸãã $VIRTUAL_ENV
ã¯ã«ã¬ã³ãç°å¢ãæãããã«ã»ãããããŸãã
pre_deactivate¶
virtualenvwrapper.pre_deactivate
ããã¯ã¯ä»®æ³ç°å¢ãç¡å¹ã«ãªãåã«å®è¡ãããŸãã $VIRTUAL_ENV
ã¯ã«ã¬ã³ãç°å¢ãæãããã«ã»ãããããŸãã
post_deactivate¶
virtualenvwrapper.post_deactivate
ããã¯ã¯ä»®æ³ç°å¢ãç¡å¹ã«ãªã£ãåŸã§å®è¡ãããŸããéã¢ã¯ãã£ãåãããç°å¢ã®ååã¯1çªç®ã®åŒæ°ãšããŠæž¡ãããŸãã
pre_rmvirtualenv¶
virtualenvwrapper.pre_rmvirtualenv
ããã¯ã¯ä»®æ³ç°å¢ãåé€ãããåã«å®è¡ãããŸããåé€ãããç°å¢ã®ååã¯1çªç®ã®åŒæ°ãšããŠæž¡ãããŸãã
post_rmvirtualenv¶
virtualenvwrapper.post_rmvirtualenv
ããã¯ã¯ä»®æ³ç°å¢ãåé€ãããåŸã§å®è¡ãããŸããåé€ãããç°å¢ã®ååã¯1çªç®ã®åŒæ°ãšããŠæž¡ãããŸãã
æ°ããæ¡åŒµãã€ã³ããè¿œå ãã¶
ããã«æ°ããæäœãå®çŸ©ãããã©ã°ã€ã³ã¯æ°ããæ¡åŒµãã€ã³ããå®çŸ©ã§ããŸããããã¯ããŒããæ¡åŒµæ©èœãèŠã€ããããã«è¡ãèšå®ã¯å¿
èŠãããŸãããååãèšè¿°ã㊠virtualenvwrapper_run_hook
ã®åŒã³åºããè¿œå ããããšã§ãè¿œå ããæ¡åŒµæ©èœãå®è¡ãããããã«ãªããŸãã
ããã¯ããŒãã¯å
šãŠã®æ¡åŒµãã€ã³ãã®ååã virtualenvwrapper.
ã§å§ãŸãããšãåæãšããŠããŸãããããŠãæ°ãããã©ã°ã€ã³ã¯ç¬èªã®åå空éã®ä¿®é£Ÿèªå¥ããã®æ¥é èŸã«è¿œå ããããªãã§ããããäŸãã° project æ¡åŒµã¯ãããžã§ã¯ãã®ãã£ã¬ã¯ããªäœæ(ååŸ)ã«é¢é£ããŠæ°ããªã€ãã³ããå®çŸ©ããŸãããã㧠virtualenvwrapper.project.pre_mkproject
ãš virtualenvwrapper.project.post_mkproject
ãåŒã³åºãããŸããããã¯æ¬¡ã®ããã«1ã€ãã€å®è¡ãããŸãã
virtualenvwrapper_run_hook project.pre_mkproject $project_name
ãš
virtualenvwrapper_run_hook project.post_mkproject
ã§ãã
ãããžã§ã¯ã管ç¶
project directory 㯠virtualenv ã«é¢é£ä»ããããŸãããéçºãæ¯æŽããããã«å¿ èŠãšãããã³ã³ããŒãã³ããã€ã³ã¹ããŒã«ãããšãããããæ®éã¯æŽ»çºã«éçºäžã®ãœãŒã¹ã³ãŒããå«ã¿ãŸããäŸãã°ããããžã§ã¯ããã£ã¬ã¯ããªã¯ãããŒãžã§ã³ç®¡çã·ã¹ãã ãããã§ãã¯ã¢ãŠãããããœãŒã¹ã³ãŒãããŸã ããŒãžã§ã³ç®¡çã·ã¹ãã ã«ã³ããããããŠããªããã¹ããå®éšçãªãã¡ã€ã«ããäœæãããäžæçãªãã¡ã€ã«ãå«ããããããŸããã
ãããžã§ã¯ããã£ã¬ã¯ããªãäœæããŠã mkvirtualenv ã®ä»£ããã« mkproject ãå®è¡ãããšãã« virtualenv ãæçžããŸããæ¢åã®ãããžã§ã¯ããã£ã¬ã¯ããªã virtualenv ã«æçžããã«ã¯ setvirtualenvproject ã䜿ã£ãŠãã ããã
ãã³ãã¬ãŒãã®å©çšÂ¶
æ°ãããããžã§ã¯ããã£ã¬ã¯ããªã¯ã空ã®ãã£ã¬ã¯ããªããŸã㯠template ãã©ã°ã€ã³ã䜿ã£ãŠäœæãããŸãããã³ãã¬ãŒã㯠mkproject ã®åŒæ°ãšããŠæå®ããŸããè€æ°ã®ãã³ãã¬ãŒããé©çšã§ããŸããäŸãã°ãbitbucket ã®ãããžã§ã¯ããã Mercurial ãªããžããªããã§ãã¯ã¢ãŠãããŠæ°ãã« Django ãµã€ããäœæããã«ã¯ã bitbucket ãš django ã®ãã³ãã¬ãŒããçµã¿åãããŠäœ¿ããŸãã
$ mkproject -t bitbucket -t django my_site
Tips ãšããªãã¯Â¶
ãã㯠virtualenv ãš virtualenvwrapper ãããã«äœ¿ãæãããããã«ãŠãŒã¶ãæããŠããã tips ã§ããããªããå ±æããã tip ãæã£ãŠãããªããç§ã«ã¡ãŒã«ãéã£ãŠããããã ãã®ããã° ã«ã³ã¡ã³ãããã ãããç§ã¯ãã®ããŒãžã«ãã® tip ãè¿œå ããŸãã
zsh ããã³ãã¶
Nat ããã§ãã
zsh ã䜿çšããŠãã¢ã¯ãã£ããªä»®æ³ç°å¢ãã¹ã¯ãªãŒã³ã®å³åŽã«è¡šç€ºããããã« $WORKON_HOME/post(de)activate
ã«å°ãè¿œå ããŸããã
postactivate
ã¯æ¬¡ã«ãªããŸãã
PS1="$_OLD_VIRTUAL_PS1"
_OLD_RPROMPT="$RPROMPT"
RPROMPT="%{${fg_bold[white]}%}(env: %{${fg[green]}%}`basename \"$VIRTUAL_ENV\"`%{${fg_bold[white]}%})%{${reset_color}%} $RPROMPT"
ãã㊠postdeactivate
ã¯æ¬¡ã«ãªããŸãã
RPROMPT="$_OLD_RPROMPT"
å人çãªè¶£åãç°å¢ã«å¿ããŠè²ã調æŽããŠãã ããã
ãã£ãã·ã¥ããã $PATH
ãšã³ããªãæŽæ°ãã¶
Nat ããã§ãã
ããã« zsh ã¯æ°ããªãã¹ãããã«ååŸããªãåé¡ããã£ãã®ã§ $WORKON_HOME/postactivate
ãš $WORKON_HOME/postdeactivate
ãžã³ãã³ã ‘rehash’ ãè¿œå ããŸããã
pip ã® virtualenv ãµããŒã¶
http://becomingguru.com/ ããã§ãã
virtualenvwrapper ãšã㊠virtualenvs ã®ããã« pip ãåããã£ã¬ã¯ããªã䜿çšããããã«ãã°ã€ã³ã·ã§ã«ã«æ¬¡ã®å 容ãè¿œå ããŠãã ããã
export PIP_VIRTUALENV_BASE=$WORKON_HOME
ããã« Nat ããã§ãã
becomingguru ãææããããšã«å ããŠæ¬¡ã®è¡ãããŒã«ãªããŸãã
export PIP_RESPECT_VIRTUALENV=true
ãã㯠-E ãã©ã¡ãŒã¿ã pip ãžæž¡ããã« pip ãã¢ã¯ãã£ããªä»®æ³ç°å¢ãæ€åºããŠã€ã³ã¹ããŒã«ããŸãã
ãããžã§ã¯ãã®ã¯ãŒã¯ãã£ã¬ã¯ããªãäœæãã¶
James ããã§ãã
ç§ã¯ postmkvirtualenv
ã¹ã¯ãªããã§ãããžã§ã¯ãåã«åºã¥ããŠãã£ã¬ã¯ããªãäœæããŠã
Python ãã¹ãžãã®ãã£ã¬ã¯ããªãè¿œå ããŠãããããžç§»åããŸãã
proj_name=$(echo $VIRTUAL_ENV|awk -F'/' '{print $NF}')
mkdir $HOME/projects/$proj_name
add2virtualenv $HOME/projects/$proj_name
cd $HOME/projects/$proj_name
ç§ã¯ postactivate
ã¹ã¯ãªãã㧠workon ã³ãã³ãã䜿çšãããšãã«èªåçã«ãããžã§ã¯ããã£ã¬ã¯ããªãžç§»åããããã«ã»ããããŸãã
proj_name=$(echo $VIRTUAL_ENV|awk -F'/' '{print $NF}')
cd ~/projects/$proj_name
ãã£ã¬ã¯ããªãžç§»åãããšãã«èªåçã« workon ãå®è¡ãã¶
cd
ãå®è¡ããæ¯ã«ãã®ãã£ã¬ã¯ããªã§ã·ã§ã«ç°å¢ã調ã¹ãããã«è¿œå ããã³ãŒãã Justin Lily ãæçš¿ããŸãã ã .venv
ãã¡ã€ã«ãèŠã€ãããããã®ãã¡ã€ã«ã«å«ãŸããç°å¢ã®ååã§ã¢ã¯ãã£ãåããŸãããã®ãã£ã¬ã¯ããªãã移åãããšãã«ã¬ã³ãã®ä»®æ³ç°å¢ã¯èªåçã«éã¢ã¯ãã£ãåããŸãã
Harry Marr 㯠git ãªããžã㪠ã§åäœãããã䌌ãæ©èœãæžããŸããã
æ°ããç°å¢ã«å ±éããŒã«ãèªåçã«ã€ã³ã¹ããŒã«ãã¶
rizumu ããã§ãã
ç§ã¯ãã® postmkvirtualenv
ãåºæ¬çãªã»ããã¢ãããè¡ãã€ã³ã¹ããŒã«ã«äœ¿çšããŸãã
$ cat postmkvirtualenv
#!/usr/bin/env bash
curl -O http://python-distribute.org/distribute_setup.p... />python distribute_setup.py
rm distribute_setup.py
easy_install pip==dev
pip install Mercurial
ãããããç§ã®éçºããŒã«ãšå ±ã« pip ã®èŠæ±ãã¡ã€ã«ãæã¡ãŸãã
$ cat developer_requirements.txt
ipdb
ipython
pastescript
nose
http://douglatornell.ca/software/python/Nosy-1.0.tar.gz
coverage
sphinx
grin
pyflakes
pep8
ããããã®ãããžã§ã¯ã㯠PIL, psycopg2, django-apps, numpy ãšãã£ããã®ç¬èªã® pip èŠæ±ãã¡ã€ã«ãæã¡ãŸãã
cd
ã®ããã©ã«ãã®æ¯ãèããå€æŽãã¶
mae ããã§ãã
ãã㯠workon ã®åŸã§å®è¡ããããšã«ãªã postactivate
ããã¯ã§ããvenv ã«ãŒããžç§»åãã ~
ãž cd
ã§ç§»åãã代ããã« VENV ãç¥ã£ãŠããããã« cd
ãåºæ¬çã«äžæžãããŸããIMO ã¯ãšãŠãæ±ãæããŠããããããªãã§ã¯çããŠãããŸãããé©åãªãã¹ãæž¡ããããšæ£åžžã«ç§»åããŸãã
cd () {
if (( $# == 0 ))
then
builtin cd $VIRTUAL_ENV
else
builtin cd "$@"
fi
}
cd
éçºè åã¶
ããªããçŽæ¥ virtualenvwrapper ã«è²¢ç®ããããªãã次ã®èª¬æã圹ã«ç«ã€ã§ãããããããããã°ã¬ããŒããæ©èœèŠæ±ã¯ BitBucket ãµã€ã ã§æãã§åãä»ããŸãããããã pull ãªã¯ãšã¹ãã«ããè²¢ç®ã¯ãã®ä¿®æ£ãåã蟌ãã ããåªå 床ã®é æ ®ãè¡ãæãã§ãããã
Note
virtualenvwrapper ã®ã³ã¢ãžæ°ããæ©èœãè¿œå ããåã«ããã®ä»£ããã«æ©èœæ¡åŒµãšããŠå®è£ ãã¹ããã©ãããããèããŠãã ããã
ããã¥ã¡ã³ããäœæãã¶
virtualenvwrapper ã®ããã¥ã¡ã³ã㯠reStructuredText ã§æžãããŠã㊠Sphinx 㧠HTML ã«å€æãããŸãããã㯠make ã³ãã³ãã§ãã«ããããŸããããã¥ã¡ã³ãããã«ãããããã«æ¬¡ã®ããã±ãŒãžãå¿ èŠã«ãªããŸãã
- Sphinx
- docutils
å
šãŠã®ããŒã«ã pip ã䜿çšããŠä»®æ³ç°å¢å
ã«ã€ã³ã¹ããŒã«ãããããããã¥ã¡ã³ãã® HTML ããŒãžã§ã³ãçæããããã« make html
ãå®è¡ããŠãã ããã
$ make html
rm -rf virtualenvwrapper/docs
(cd docs && make html SPHINXOPTS="-c sphinx/pkg")
sphinx-build -b html -d build/doctrees -c sphinx/pkg source build/html
Running Sphinx v0.6.4
loading pickled environment... done
building [html]: targets for 2 source files that are out of date
updating environment: 0 added, 2 changed, 0 removed
reading sources... [ 50%] command_ref
reading sources... [100%] developers
looking for now-outdated files... none found
pickling environment... done
checking consistency... done
preparing documents... done
writing output... [ 33%] command_ref
writing output... [ 66%] developers
writing output... [100%] index
writing additional files... search
copying static files... WARNING: static directory '/Users/dhellmann/Devel/virtualenvwrapper/plugins/docs/sphinx/pkg/static' does not exist
done
dumping search index... done
dumping object inventory... done
build succeeded, 1 warning.
Build finished. The HTML pages are in build/html.
cp -r docs/build/html virtualenvwrapper/docs
æçµçãªããã¥ã¡ã³ãã®çæå
容ã¯ãµã³ãããã¯ã¹ã® ./virtualenvwrapper/docs
ã«ãããŸãã
ãã¹ããå®è¡ãã¶
virtualenvwrapper ã®ãã¹ãã¹ã€ãŒã㯠shunit2 ãš tox ã䜿ããŸããshunit2 ã®ãœãŒã¹ã¯ tests
ãã£ã¬ã¯ããªã«å«ãŸããŠããŸãããtox ã¯å¥éã€ã³ã¹ããŒã«ããå¿
èŠããããŸã (pip install tox
) ã
bash, zsh, ksh ç°å¢ã§ Python 2.4 - 2.7 ã®ãã¹ããå®è¡ããã«ã¯ãhg ãªããžããªã®æäžäœãã£ã¬ã¯ããªãã tox
ãå®è¡ããŠãã ããã
åå¥ã®ãã¹ãã¹ã¯ãªãããå®è¡ããã«ã¯ã次ã®ããã«å®è¡ããŸãã
$ tox tests/test_cd.sh
Python ã®ããããŒãžã§ã³ã§ãã¹ããå®è¡ããã«ã¯ãtox ãå®è¡ãããšãã«é©åãªç°å¢ãæå®ããŸãã
$ tox -e py27
åè¿°ããç¹å®ãã¹ããš Python ããŒãžã§ã³ã®ãã¹ããå®è¡ããã«ã¯ã2ã€ã®æ¹æ³ãçµã¿åãããŠãã ããã
$ tox -e py27 tests/test_cd.sh
æ¢åã®ãã¡ã€ã«ãå€æŽããŠæ°ãããã¹ããè¿œå ãããã tests
ãã£ã¬ã¯ããªã«æ°ããã¹ã¯ãªãããäœæããŠãã ããã
æ°ãããã³ãã¬ãŒãã®äœæ¶
virtualenvwrapper.project ãã³ãã¬ãŒã㯠virtualenvwrapper plugins ãšåãããã«åäœããŸãã
entry point ã°ã«ãŒãã®åå㯠virtualenvwrapper.project.template
ã§ãã
run ãå®è¡ããé¢æ°ãåç
§ããç¬èªã®ãšã³ããªãŒãã€ã³ããèšå®ããŠãã ãã
(ãœãŒã¹ããã¯ã¯ãã³ãã¬ãŒãããµããŒãããŠããŸãã) ã
ãã³ãã¬ãŒãé¢æ°ã®åŒæ°ã¯ãäœæãããããžã§ã¯ãã®ååã§ãã
ã«ã¬ã³ãã¯ãŒã¯ãã£ã¬ã¯ããªã¯ããããžã§ã¯ãã®ãã¡ã€ã«ãä¿æããããã«äœæããããã£ã¬ã¯ããªã§ã ($PROJECT_HOME/$envname
) ã
ãã«ãããã¹ã¶
ãããžã§ã¯ããã³ãã¬ãŒããšãã®ä»ã® virtualenvwrapper æ¡åŒµãšã®éãã¯ããŠãŒã¶ãŒãæå®ãããã³ãã¬ãŒãã®ã¿ãå®è¡ãããããšã§ãã
mkproject
ã³ãã³ãã¯ããŠãŒã¶ãŒãžå©çšã§ãããã³ãã¬ãŒãäžèŠ§è¡šç€ºãããã«ããªãã·ã§ã³ããããŸãã
ãã³ãã¬ãŒãåã¯ãç»é²ããããšã³ããªãŒãã€ã³ãããååŸãããååã§ãã
ãããŠããã³ãã¬ãŒãã®èª¬æã¯ããã³ãã¬ãŒãé¢æ°ã® docstrings ã衚瀺ããŸãã
æ¢åã®æ¡åŒµæ©èœÂ¶
次㫠virtualenvwrapper ã§å©çšã§ããæ¡åŒµæ©èœã玹ä»ããŸãã
emacs-desktop¶
emacs desktop-mode ã¯ã»ãã·ã§ã³é㧠emacs ã®ç¶æ
(ãããã¡ã®ãªãŒãã³ããªã³ã°ã®åé€ããããã¡ã®äœçœ®ç)ãä¿åãããŸããããã¯ä»ã® IDE ã«å¯Ÿãã1ã€ã®ãããžã§ã¯ããã¡ã€ã«ãšããŠäœ¿çšããããšãã§ããŸãã emacs-desktop ãã©ã°ã€ã³ã¯ãã«ã¬ã³ãã®ãã¹ã¯ããããã¡ã€ã«ãä¿åããããªã¬ãŒãè¿œå ããŠã workon
ã§æ°ããä»®æ³ç°å¢ãã¢ã¯ãã£ãåãããšãã«æ°ããªãã¡ã€ã«ãèªã¿èŸŒã¿ãŸãã
user_scripts¶
user_scripts
æ¡åŒµã¯ virtualenvwrapper ã§æäŸãããããã©ã«ãã§æå¹ã§ãããã㯠ãŠãŒã¶ã«ã¹ã¿ãã€ãº ã§èª¬æãããŠãŒã¶ã®ã«ã¹ã¿ãã€ãºã¹ã¯ãªããæ©èœãå®è£
ããŸãã
vim-virtualenv¶
vim-virtualenv ã¯ãJeremey Cantrell ã«ãããã©ã°ã€ã³ã§ vim ãã virtualenvs ãå¶åŸ¡ããŸããvirtualenvwrapper ãšäžç·ã«äœ¿ãå Žåã¯ãvim-virtualenv ãç·šéãããã¡ã€ã«åã«å¯Ÿå¿ããŠã¢ã¯ãã£ãåãã virtualenv ãèå¥ããŸãã
ãã³ãã¬ãŒã¶
mkproject ã§å©çšã§ãããã³ãã¬ãŒãã®äžèŠ§ã玹ä»ããŸãã
bitbucket¶
bitbucket æ¡åŒµã¯ãæå®ãã bitbucket ãããžã§ã¯ãããèªåçã« mercurial ã®ãªããžããªãã¯ããŒã³ããŸãã
ãªãªãŒã¹å±¥æŽÂ¶
dev
- Clean up file permissions and remove shebangs from scripts not intended to be executed on the command line. (contributed by ralphbean)
- Worked on some brittle tests.
3.2
- Make
project_dir
a local variable so that cdproject does not interfere with other variables the user might have set. (contributed by slackorama)- Fix typo in documentation reported by Nick Martin.
- Change trove classifier for license “MIT” to reflect the license text presented in the documentation. This does not indicate a change in the license, just a correction to the expression of that intent. See :ref:`license` (contributed by ralphbean as fix for issue 134)
- Extend rmvirtualenv to allow removing more than one environment at a time. (contributed by ciberglo)
- Change the definition of
virtualenvwrapper_get_site_packages_dir
to askdistutils
for thesite-packages
directory instead of trying to build the path ourselves in the shell script. This should resolve issue 112 and improve support for Python interpreters other than C Python. Thanks to Carl Meyer and Dario Bertini for their contributions toward the fix.
3.1
3.0.1
- Fix some packaging issues that made it more difficult to run the tests directly from the sdist package. (issue 126)
3.0
- Add Python 3 support, thanks in large part to the efforts of Daniel Kraus (dakra). Tested under Python 2.6, 2.7, and 3.2.
2.11.1
- Remove the initialization shortcut because it breaks tab completion in sub-shell environments like screen and tmux. (issue 121)
2.11
- Add
-a
option to mkvirtualenv to associate a new virtualenv with an existing project directory. Contributed by Mike Fogel (mfogel).- Drops support for Python 2.4 and 2.5. The tools may still work, but I no longer have a development environment set up for testing them, so I do not officially support them.
- Shortcut initialization if it has run before.
- Set hook log file permissions to be group-writable. (issue 62 reported by hedgeddown)
- Add
VIRTUALENVWRAPPER_PROJECT_FILENAME
variable so the.project
file used to link a virtualenv to a project can be renamed to avoid conflicts with other tools. (issue 120 reported by arthuralvim)
2.10.1
- Changed arguments to mktmpenv so it always creates an environment name for you. (issue 114 reported by alex_gaynor)
2.10
- Incorporated patch to add
-d
option to command-add2virtualenv, contributed by miracle2k.- Add
-i
option to mkvirtualenv.- Add mktmpenv command for creating temporary environments that are automatically removed when they are deactivated.
- Fixed a problem with hook_loader that prevented it from working under Python 2.5 and 2.4.
- Fix a problem with the way template names were processed under zsh. (issue 111)
2.9
- Change the shell function shell definition syntax so that ksh will treat typeset-declared variables as local. No kidding.
- Merge the “project directory” features of the
virtualenvwrapper.project
plugin into the main project, adding mkproject, cdproject, and setvirtualenvproject commands.- Add
-r
option to mkvirtualenv to install dependencies using a pip requirements file.
2.8
- Use VIRTUALENVWRAPPER_VIRTUALENV in cpvirtualenv (issue 104).
- Add support for MSYS environment under Windows. Contributed by Axel H. (noirbizarre).
2.7.2
- Move setup code for tab completion later in the startup code so all of the needed variables are configured. (issue 97)
- Expand tab completion for zsh to work for all commands.
2.7.1
- When testing for WORKON_HOME during startup, dereference any symlink to make sure it is a directory.
- Set VIRTUALENVWRAPPER_HOOK_DIR and VIRTUALENV_WRAPPER_LOG DIR in virtualenvwrapper_initialize after WORKON_HOME is set (issue 94).
- Update the åºæ¬çãªã€ã³ã¹ããŒã« instructions to be more explicit about needing to install virtualenvwrapper globally (or at least outside of a virtualenv).
2.7
- Fix problem with space in WORKON_HOME path (issue 79).
- Fix problem with argument processing in lsvirtualenv under zsh (issue 86). Thanks to Nat Williams (natw) for the bug report and patch.
- If WORKON_HOME does not exist, create it. Patch from Carl Karsten (CarlFK). Test updates based on patches from Matt Austin (maafy6) and Hugo Lopes Tavares (hltbra).
- Merge in contributions from Paul McLanahan (pmclanahan) to fix the test harness to ensure that the test scripts are actually running under the expected shell.
- Merge in new shell command toggleglobalsitepackages from Paul McLanahan (pmclanahan). The new command changes the configuration of the active virtualenv to enable or disable the global
site-packages
directory.- Fixed some tests that were failing under ksh on Ubuntu 10.10.
- Document the VIRTUALENVWRAPPER_VIRTUALENV variable.
- Implement suggestion by Van Lindberg to have VIRTUALENVWRAPPER_HOOK_DIR and VIRTUALENVWRAPPER_LOG_DIR variables to control the locations of hooks and logs.
- Enabled tab completion for showvirtualenv (issue 78).
- Fixed a problem with running rmvirtualenv from within the environment being removed (issue 83).
- Removed use of -e option in calls to grep for better portability (issue 85).
2.6.3
- http://readthedocs.org ã§ããã¥ã¡ã³ããçæããããã« setup.py ã conf.py ã¹ã¯ãªããã®ããŒãžã§ã³æ å ±ãããŒãã³ãŒãããŸããã
2.6.2
- http://readthedocs.org ã§ããã¥ã¡ã³ããçæããŠã¿ãŸããã
- Tetsuya Morimoto ããã® æ¥æ¬èªã®ç¿»èš³ããã¥ã¡ã³ã ãåã蟌ã¿ãŸããã
- ç°å¢å€æ° (VIRTUALENVWRAPPER_VIRTUALENV) 㧠virtualenv ãã€ããªããŠãŒã¶ãæå®ã§ããããã« Ales Zoulek ããã®ææ¡ãåãå ¥ããŸããã
2.6.1
- virtualenvwrapper_get_python_version ãä¿®æ£ããŸãã(issue 73)ã
2.6
- Cygwin ç°å¢ã§ããã¯ã¹ã¯ãªããã®æ¹è¡ã®åé¡ãä¿®æ£ããŸãã(issue 68)ã
- äºæã·ã§ã«ã®ãªã¹ã(ãµããŒãã·ã§ã«) ãš Python ããŒãžã§ã³(Python ããŒãžã§ã³)ãå«ãããã«ããã¥ã¡ã³ããæŽæ°ããŸãã(issue 70)ã
- virtualenv ã®ã€ã³ã¹ããŒã«ã®äŸåé¢ä¿ãä¿®æ£ããŸãã(issue 60)ã
- Python 2.4 ã§åäœããããã« Python ããŒãžã§ã³ã決å®ããã¡ãœãããä¿®æ£ããŸãã(issue 61)ã
- Makefile ã®èªäœã¹ã¯ãªããã®ä»£ããã« tox ã䜿çšããããã«ãã¹ãã€ã³ãã©ãå€æããŸããã
2.5.3
- doughellmann.com ã®äŒæ¢æéäžã« PyPI ãžã¢ããããŒããããã€ã³ããªãªãŒã¹ã§ãã
2.5.2
- zsh ç°å¢ã® lsvirtualenv ãä¿®æ£ãã Zach Voase ããã®ããããé©çšããŸããã issue 64 ã解決ããŸããã
2.5.1
- æ°ç¡ãã§å®è¡ãããšãã« command-workon ã«å®å šãªç°å¢è©³çŽ°ã§ã¯ãªãç°¡æœãªè©³çŽ°ã衚瀺ããããã«ããŸããã
2.5
- showvirtualenv ã³ãã³ããè¿œå ããŸãããããã©ã«ãã§åé·ãªåºåãè¡ãããã« lsvirtualenv ãå€æŽããŸããã
2.4
- command-workon ãåŒæ°ç¡ãã§å®è¡ããããšãã« get_env_details ããã¯ãå®è¡ããããã«
-l
ãªãã·ã§ã³ãæ〠lsvirtualenv ã³ãã³ããè¿œå ããŸããã
2.3
get_env_details
ããã¯ãè¿œå ããŸããã
2.2.2
- ãšã€ãªã¢ã¹ãé¿ããŠã·ã§ã«ã³ãã³ããããã«ãšã¹ã±ãŒãåŠçãã Fred Palmer ã®ããããåã蟌ã¿ãŸããã issue 57 ã解決ããŸããã
- egrep åŒæ°ã®ãšã¹ã±ãŒãåŠçã®åé¡ãä¿®æ£ããŸãã(issue 55)ã
- åŒæ°ç¡ã㧠mkvirtualenv ãå®è¡ãããšãã®åé¡ãä¿®æ£ããŸãã(issue 56)ã
2.2.1
which
åŒã³åºãããšã€ãªã¢ã¹ãé¿ããããã«ãšã¹ã±ãŒãããŸããã issue 46 ã解決ããŸããã- grep ãåŒã³åºãåã« GREP_OPTIONS ãã¢ã³ã»ãããã Manuel Kaufmann ã®ããããåã蟌ã¿ãŸããã issue 51 ã解決ããŸããã
- issue 53 ã解決ããæ£èŠè¡šçŸã®
$
ããšã¹ã±ãŒãããŸãããrm
ã®ãšã€ãªã¢ã¹ã«é¢ããåé¡ããšã¹ã±ãŒãã㊠issue 50 ã解決ããŸããã
2.2
- issue 43 ã解決ããããã« Python 2.4 ã§åäœãã圢ã§ããã¯ããŒãã®å®è¡ãåãæ¿ããŸããã
- Python 2.7b1 ã§ãã¹ãããŸããã issue 44 ãåç §ããŠãã ããã
- David Wolever ããã®ããã©ãŒãã³ã¹æ¹åãåã蟌ã¿ãŸããã issue 38 ãåç §ããŠãã ããã
- issue 35 ã®ããã«ãããã°åœä»€ãè¿œå ããŸããã
2.1.1
- Manuel Kaufmann ã® http://bitbucket.org/humitos/virtualenvwrapper-es-translation/ ãã ã¹ãã€ã³èªã®ç¿»èš³ããã¥ã¡ã³ã ãè¿œå ããŸããã
- ã©ãããŒãã€ã³ã¹ããŒã«ãããå Žæã§ã¯ãªã
$PATH
ãã Python ã®äžé©åãªå©çšãä¿®æ£ããŸããã issue 41 ãåç §ããŠãã ããã- zsh ã§ä»®æ³ç°å¢ãéã¢ã¯ãã£ãåãããšãã®èª€ã£ããšã©ãŒ/ã¯ãŒãã³ã°ã¡ãã»ãŒãžããªã ããŸããã issue 42 ãåç §ããŠãã ããã
2.1
- ksh ãµããŒããè¿œå ããŸãããå€æŽããç®æã調æ»ããŠããã Doug Latornell ã«æè¬ããŸãã
- èµ·åæã« virtualenvwrapper.hook_loader ã®ã€ã³ããŒããã¹ããããŠããŠãŒã¶ãžä¿®æ£æ¹æ³ãç解ããã®ã«åœ¹ç«ã€ããã«ãšã©ãŒãå ±åããŸã(issue 33)ã
- æ°ããä»®æ³ç°å¢ãäœæãããåŸã§ããã«ã¢ã¯ãã£ãåããããšã«ã€ã㊠mkvirtualenv ããã¥ã¡ã³ããæŽæ°ããŸãã(issue 30)ã
- cpvirtualenv ã«é¢é£ããããã¯ãè¿œå ããŸããã
- ç¹ã« ksh ç°å¢ã§ãéã¢ã¯ãã£ãåãããå ç¢ã«ããŸããã
- å®å šã§ç§»æ€æ§ã®é«ãäžæãã¡ã€ã«åãäœæããããã« Python ã®
tempfile
ã¢ãžã¥ãŒã«ã䜿çšããŸããã- ä»®æ³ç°å¢ããŸã 1ã€ãäœæãããŠããªããšãã«ä»®æ³ç°å¢ã®ååãšããŠ
*
ã衚瀺ããããšã§çºçããvirtualenvwrapper_show_workon_options
ã®åé¡ãä¿®æ£ããŸããã- ååä»ãããã¯ã®ã¿ãå®è¡ã§ããããã«ããã¯ããŒããå€æŽããŸããã
- virtualenvwrapper.project ã® mkproject ã®ããã«ã³ãã³ãã®ãã«ãåºåã䜿çšããŠå©çšå¯èœãªããã¯ã®ååŸãµããŒããè¿œå ããŸããã
- mkvirtualenv ã® -h ãªãã·ã§ã³ã®æ¯ãèããä¿®æ£ããŸããã
- $WORKON_HOME/hook.log ãã¡ã€ã«ã 10KiB ã§ããŒããŒãããããã« logging ãå€æŽããŸããã
2.0.2
- virtualenvwrapper.user_scripts ã Python 2.5 äºæã«ãªãããã« issue 32 ãä¿®æ£ããŸããã
2.0.1
TMPDIR
ããŠãŒã¶ã®ã·ã§ã«ç°å¢ã§ã»ãããããŠããªããšãã«ããã©ã«ãå€ã䜿çšããããã« issue 29 ãä¿®æ£ããŸããã
2.0
- æ¡åŒµæ©èœãå ±æãæãããããã« Distribute ãšã³ããªãã€ã³ãã䜿çšããŠããã¯ç®¡çãæžãçŽããŸããã
1.27
- Added cpvirtualenv command [Thomas Desvenain]
1.26
- Fix a problem with error messages showing up during init for users with the wrappers installed site-wide but who are not actually using them. See issue 26.
- Split up the tests into multiple files.
- Run all tests with all supported shells.
1.25
- Merged in changes to cdsitepackages from William McVey. It now takes an argument and supports tab-completion for directories within site-packages.
1.24.2
- Add user provided Tips ãšããªã㯠section.
- Add link to Rich Leland’s screencast to references section.
1.24.1
- Add license text to the header of the script.
1.24
- Resolve a bug with the preactivate hook not being run properly. Refer to issue 21 for complete details.
1.23
1.22
- Automatically create any missing hook scripts as stubs with comments to expose the feature in case users are not aware of it.
1.21
- Better protection of
$WORKON_HOME
does not exist when the wrapper script is sourced.
1.20
- Incorporate lssitepackages feature from Sander Smits.
- Refactor some of the functions that were using copy-and-paste code to build path names.
- Add a few tests.
1.19
- Fix problem with add2virtualenv and relative paths. Thanks to Doug Latornell for the bug report James Bennett for the suggested fix.
1.18.1
- Incorporate patch from Sascha Brossmann to fix a issue 15. Directory normalization was causing
WORKON_HOME
to appear to be a missing directory if there were control characters in the output ofpwd
.
1.18
- Remove warning during installation if sphinxcontrib.paverutils is not installed. (issue 10)
- Added some basic developer information to the documentation.
- Added documentation for deactivate command.
1.17
- Added documentation updates provided by Steve Steiner.
1.16
- Merged in changes to
cdvirtualenv
from wam and added tests and docs.- Merged in changes to make error messages go to stderr, also provided by wam.
- 1.15
- Better error handling in mkvirtualenv.
- Remove bogus VIRTUALENV_WRAPPER_BIN variable.
- 1.14
- Wrap the virtualenv version of deactivate() with one that lets us invoke the predeactivate hooks.
- Fix virtualenvwrapper_show_workon_options for colorized versions of ls and write myself a note so I don’t break it again later.
- Convert test.sh to use true tests with shunit2
1.13
- Fix issue 5 by correctly handling symlinks and limiting the list of envs to things that look like they can be activated.
1.12
- Check return value of virtualenvwrapper_verify_workon_home everywhere, thanks to Jeff Forcier for pointing out the errors.
- Fix instructions at top of README, pointed out by Matthew Scott.
- Add cdvirtualenv and cdsitepackages, contributed by James Bennett.
- Enhance test.sh.
1.11
- Optimize virtualenvwrapper_show_workon_options.
- Add global postactivate hook.
1.10
- Pull in fix for colorized ls from Jeff Forcier (changeset b42a25f7b74a).
1.9
- Add more hooks for operations to run before and after creating or deleting environments based on changes from Chris Hasenpflug.
1.8.1
- Corrected a problem with change to mkvirtualenv that lead to release 1.8 by using an alternate fix proposed by James in comments on release 1.4.
1.8
- Fix for processing the argument list in mkvirtualenv from jorgevargas (issue 1)
1.7
- Move to bitbucket.org for hosting
- clean up TODO list and svn keywords
- add license section below
1.6.1
- More zsh support (fixes to rmvirtualenv) from Byron Clark.
1.6
- Add completion support for zsh, courtesy of Ted Leung.
1.5
- Fix some issues with spaces in directory or env names. They still don’t really work with virtualenv, though.
- Added documentation for the postactivate and predeactivate scripts.
1.4
- Includes a new .pth management function based on work contributed by James Bennett and Jannis Leidel.
1.3.x
- Includes a fix for a nasty bug in rmvirtualenv identified by John Shimek.
åèæç®Â¶
Ian Bicking ã® virtualenv ã virtualenvwrapper ã®æ¡åŒµæ©èœã䜿çšããããã«å¿ é ã§ãã
ããã«è©³çŽ°ã¯ç§ãæžãã2008幎5æã® Python ãã¬ãžã³ã®ã³ã©ã ãåç §ããŠãã ããã virtualenvwrapper | ãšããã§è©±ã¯å€ãããŸãã
Rich Leland 㯠virtualenvwrapper ã®æ©èœãèªç€ºããããã«çã ã¹ã¯ãªãŒã³ãã£ã¹ã ãäœæããŸããã
Manuel Kaufmann 㯠ãã®ããã¥ã¡ã³ããã¹ãã€ã³èªã«ç¿»èš³ããŸãã ã
Tetsuya Morimoto 㯠ãã®ããã¥ã¡ã³ããæ¥æ¬èªã«ç¿»èš³ããŸãã ã
ãµããŒã¶
åé¡ãæ©èœãè°è«ããã«ã¯ virtualenvwrapper Google Group ã«åå ããŠãã ããã
BitBucket ã®ãã°ãã©ãã«ãŒ ã§ãã°ãå ±åããŠãã ããã
ã·ã§ã«ãšã€ãªã¢ã¹Â¶
virtualenvwrapper ã¯å€§ããªã·ã§ã«ã¹ã¯ãªãããªã®ã§ãå€ãã®ã¢ã¯ã·ã§ã³ã¯ã·ã§ã«ã³ãã³ãã䜿çšããŸããããªãã®ç°å¢ãå€ãã®ã·ã§ã«ãšã€ãªã¢ã¹ããã®ä»ã®ã«ã¹ã¿ãã€ãºãè¡ã£ãŠãããªããäœãããåé¡ã«ééããå¯èœæ§ããããŸãããã°ãã©ãã«ãŒã«ãã°ãå ±åããåã«ããããã£ããšã€ãªã¢ã¹ãç¡å¹ãª ç¶æ ã§ãã¹ãããŠãã ãããããªãããã®åé¡ãåŒãèµ·ãããšã€ãªã¢ã¹ãå€å¥ã§ãããªã virtualenvwrapper ããã£ãšå ç¢ãªãã®ã«ããããšã«åœ¹ç«ã€ã§ãããã
ã©ã€ã»ã³ã¹Â¶
Copyright Doug Hellmann, All Rights Reserved
Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation, and that the name of Doug Hellmann not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission.
DOUG HELLMANN DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL DOUG HELLMANN BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.