Python環境管理--virtualenvwrapper

遇到問題:

當最近的開發和部署過程當中,多個服務器部署的時候發現對於庫和包的管理很是混亂,主要有倆個版本問題:python

  1. 由於業務須要,代碼得分別部署在不一樣的服務器上面,每次部署的時候都得重複的安裝包並且不能肯定是否跟開發環境中的包版本相同
  2. 在本地環境下,不一樣的程序得用到不一樣版本的庫和包,爲了防止不一樣程序之間的混亂

因此須要對環境進行管理,纔不會使開發環境和運行環境混亂。react

 

解決問題:

最開始我嘗試使用了Virtualenv,以後找到了Virtualenv的延伸工具-----virtualenvwrapper,發現這個讓環境管理變的更加的容易。git

功能:服務器

  • 將全部的虛擬環境整合在一個目錄下。
  • 管理(新增、移除、複製)全部的虛擬環境。
  • 可使用一個命令切換虛擬環境。
  • Tab 補全虛擬環境的名字。

安裝:app

pip install virtualenvwrapper

使用:svn

  • 列出虛擬環境列表:workon 或者lsvirtualenv
  • 新建虛擬環境:mkvirtualenv [虛擬環境名稱]
  • 啓動/切換虛擬環境:workon [虛擬環境名稱]
  • 刪除虛擬環境:rmvirtualenv [虛擬環境名稱]
  • 離開虛擬環境:deactivate

舉例:工具

新建虛擬環境: post

mkvirtualenv Test

終端會顯示,虛擬環境的建立過程,建立成功後會自動進入該虛擬環境:ui

chenxing@Ubuntu:~/project/GamePF/s/init$ mkvirtualenv Test New python executable in Test/bin/python Installing setuptools, pip...done. virtualenvwrapper.user_scripts creating /home/chenxing/.virtualenvs/Test/bin/predeactivate virtualenvwrapper.user_scripts creating /home/chenxing/.virtualenvs/Test/bin/postdeactivate virtualenvwrapper.user_scripts creating /home/chenxing/.virtualenvs/Test/bin/preactivate virtualenvwrapper.user_scripts creating /home/chenxing/.virtualenvs/Test/bin/postactivate virtualenvwrapper.user_scripts creating /home/chenxing/.virtualenvs/Test/bin/get_env_details (Test)chenxing@Ubuntu:~/project/GamePF/s/init$ 

以後能夠經過上述「使用」中列出的命令進行虛擬環境的操做。spa

 

管理實踐:

  最後當你創建好虛擬環境以後,能夠在虛擬環境中安裝本身項目所依賴的包,你所安裝的包,會在你建立的虛擬環境下面,與外界的開發環境隔離開來,以後你能夠經過生成requirements.txt的方式將項目所依賴的全部包以及包的版本寫入該文件:

  1. 將包依賴信息寫入requirements.txt中:
pip freeze > requirements.txt

   2. 以後能夠將該包上傳到項目版本管理工具(svn, git)中,服務器拿到代碼後,經過requirements.txt進行項目包的下載:

pip install -r requirements.txt

以後若是有什麼擴展包的安裝,能夠經過上述 第1步 和 第2步 的方式對開發環境和部署環境進行很好的管理。

相關文章
相關標籤/搜索