是的。 virtualenvwrapper
的
剖析現有項目中有兩個部分:
- 的virtualenv中,其中Python和蟒蛇庫已經安裝,
- 項目目錄,你的代碼是(使用virtualenv)。
Virtualenvwrapper增加了第三部分,virtualenvwrapper掛鉤。這些主要是在某個項目或virtualenvs生命週期的特定時間調用的shell函數。他們生活在第三個目錄 - 默認情況下,他們被安裝到〜/ .virtualenvs(至少在我的Debian系統上是這樣)。鉤子包括postactivate,我們將在下面編輯它,以及一些其他的如premkproject,premkvirtualenv等。下面的關鍵字列表給你鉤子的味道:initialize,pre/post,mk/rm,project/virtualenv ,激活/停用。 virtualenvwrapper將這些腳本放在$ VIRTUALENVWRAPPER_HOOK_DIR中,默認爲$ WORKON_HOME。
virtualenvwrapper假設
- 所有virtualenvs都在一個地方($ WORKON_HOME)(默認爲〜/ .virtualenvs) 比方說,你有兩個virtualenvs,一個叫MYVENV另一種叫MYOTHERVENV
- 所有的項目目錄都在另一個地方($ PROJECT_HOME)。 假設你在/ home/me/where/my/proj目錄下有一個使用virtualenv MYVENV的項目「is」。
如何使用workon對您已有的代碼和virtualenv中
在這裏工作我假設你所有的virtualenvs都在同一個地方(在我的情況,他們都在/ usr /本地/的virtualenv)。
一次性操作
編輯〜/。virtualenvs/postactivate有
case $env_name in
MYVENV)
cd /home/me/where/my/proj/is
;;
MYOTHERVENV)
cd /home/me/where/my/other/project/is2
;;
esac
鏈接
for hk in get_env_details initialize postactivate postdeactivate \
postmkproject postmkvirtualenv postrmproject postrmvirtualenv \
preactivate predeactivate premkproject premkvirtualenv \
prermproject prermvirtualenv; do \
ln -s ~/.virtualenvs/$hk /usr/local/pythonenv/$hk; \
done
你想在你的項目中使用MYVENV VIRTUALENV
WORKON_HOME=/usr/local/pythonenv workon MYVENV
當然,如果你所有的virtualenvs是任何工作時間的確,在同一個地方,你可以在.profile中定義WORKON_HOME,而不必在命令行中指定它非常時間。