1. 程式人生 > 其它 >Python虛擬環境(一):基於virtualenv+virtualenvwrapper建立python虛擬環境

Python虛擬環境(一):基於virtualenv+virtualenvwrapper建立python虛擬環境

1. 概述
2. virtualenv + virtualenvwrapper
1. virtualenv
安裝virtualenv
基本使用
2. virtualenvwrapper
安裝virtualenvwrapper
設定環境變數WORKON_HOME
virtualenvwrapper的使用
3. Pycharm建立虛擬環境
1. 使用Pycharm建立虛擬環境
2. pycharm建立虛擬環境如何檢視
3. pycharm刪除虛擬環境
4. 參考 TOC

1. 概述

對於python開發者,虛擬環境是十分有必要的,它可以讓每個專案甚至指令碼配置一個自定義的python直譯器環境,最大的好處就是各個環境相互隔離,沒有影響。

通常我們建立虛擬環境的方式主要有以下幾種

  • virtualenv + virtualenvwrapper建立
  • anaconda建立
  • Pipenv建立
  • Pycharm建立
    pycharm建立虛擬環境本質也是藉助上面三種方式建立,只不過是pycharm進行了封裝),個人感覺使用Pycharm不易於管理所有的虛擬環境,只能根據各個專案單獨管理,而上述方法均可從整體管理建立的虛擬環。

本文主講一下使用virtualenv+virtualenvwrapper與Pycharm建立虛擬環境的過程,接下來首先了解一下virtualenv與conda的區別?

  • virtualenv是虛擬環境管理器,只負責管理(建立、刪除等)虛擬環境(注意區別pip是包管理器,負責python包的安裝與刪除)
  • conda則是virtualenv + pip 的結合,既是虛擬環境管理器,也是包管理器(conda包管理器一般會安裝過多的依賴,如TensorFlow自動安裝cudnn,也可以使用pip安裝包)
    • pip只能安裝Python的包,conda可以安裝一些工具軟體,即使這些軟體不是基於Python開發的
    • 如果覺得Anaconda自帶太多用不到的包,只想使用conda的環境管理和包管理功能,那麼Anaconda確實太過龐大了,推薦使用Miniconda,它是Anaconda的無介面和預裝包的版本**
  • 一般使用venv會在該專案下建立虛擬環境或者在專案下建立venv的資料夾(含配置檔案),而conda每個虛擬環境不會佔用專案資料夾的空間,它建立在使用者設定的一個位置,這使得多個專案共享一個虛擬環境更加方便(只是方便,venv也是可以的,但是venv一般佔用專案資料夾空間,而且venv命令列使用具有侷限性)
  • conda虛擬環境是獨立於作業系統直譯器環境的,即無論作業系統直譯器什麼版本(哪怕2.7),也可以指定虛擬環境python版本為3.6,更加靈活,而venv是依賴主環境的,只能基於系統的python直譯器版本建立相應的虛擬環境(最大的區別,如果工作中需要用到不同版本python環境,則推薦使用conda更加方便)。
  • 使用virtualenv建立的虛擬環境,需要安裝相應的python包,而conda可能已經自動集成了部分包
  • conda有圖形化環境管理器,venv沒有

2. virtualenv + virtualenvwrapper

使用virtualenv + virtualenvwrapper 建立虛擬環境?什麼?怎麼又出來個virtualenwrapper? 先賣個關子,一步一步來...

1. virtualenv

virtualenv 是一個建立隔絕的Python環境的 工具。virtualenv建立一個包含所有必要的可執行檔案的資料夾,用來使用Python工程所需的包。

為什麼要用virtualenv?

  • 隔離專案之間的第三方包依賴,如A專案依賴Django1.2.5,B專案依賴django1.3
  • 為部署應用提供方便,把開發環境的虛擬環境打包到生產環境即可,不需要在伺服器上再折騰一遍。(在伺服器上都不用安裝virtualenv, 直接將virtualenv 建立的目錄拷貝到伺服器,修改路徑,進行虛擬環境遷移即可)
  • 可以用在沒有 root 許可權的Python環境配置上,如果沒有root 許可權,可以先自己搞一個virtualenv,再在virtualenv中使用pip 安裝(系統中沒有pip, 並且也沒有 root 許可權使用 sudo apt-get安裝)

安裝virtualenv

通過pip安裝virtualenv:pip install virtualenv
測試安裝情況:virtualenv --version

基本使用

  • 建立虛擬環境:
    • 切換到某個目錄下cd project_folder
    • 命令建立虛擬環境virtualenv venv
      virtualenv t3 將會在當前的目錄中建立一個資料夾,包含了Python可執行檔案, 以及 pip 庫的一份拷貝,這樣就能安裝其他包了。虛擬環境的名字(此例中是 t3 ) 可以是任意的;若省略名字將會把檔案均放在當前目錄。
  • 啟用虛擬環境:
    開始使用虛擬環境,需要被啟用,將路徑切換到 .../t3/Scripts/下(t3為建立的虛擬環境的名稱),然後執行activate.bat即可完成虛擬環境的啟用。如下圖(截圖中虛擬環境名稱為):

    注:當前虛擬環境的名字會顯示在提示符左側(比如說 (t3)您的電腦:您的工程 使用者名稱$) 以讓您知道它是啟用的。從現在起,任何您使用pip安裝的包將會放在 ``t3 資料夾中, 與全域性安裝的Python隔絕開,可以像平時一樣使用pip安裝需要的包。
  • 退出虛擬環境:
    如果您在虛擬環境中暫時完成了工作,則可以停用它deactivate這將會回到系統預設的Python直譯器。
  • 刪除虛擬環境:
    只需要將虛擬環境對應的資料夾刪除即可。

對於virtualenv建立的虛擬環境,無法做到統一管理,而且每次都需要到虛擬環境的Scripts目錄下進行啟用,切換不同的虛擬環境也不方便,因此出現了virtualenvwrapper做到虛擬環境的統一管理。

2. virtualenvwrapper

virtualenvwrapper作為virtualenv功能的擴充套件,可以統一管理虛擬環境(將虛擬環境放到WORKON_HOME目錄下),並且方便我們用單個命令切換不同的虛擬環境、檢視所有已建立的虛擬環境等,接下來就開始virtualenvwrapper的安裝與使用:

安裝virtualenvwrapper

通過pip安裝(確保 virtualenv 已經安裝了):
pip install virtualenvwrapper-win進行安裝(系統為windows),如果是Linux,命令為pip install virtualenvwrapper

注:virtualenvwrapper-win is a port of Dough Hellman's virtualenvwrapper to Windows
batch scripts.

本人通常將virtualenvwrappper安裝到系統的python直譯器下,用於後期所有專案虛擬環境的管理,個人根據實際情況安裝吧。。。

設定環境變數WORKON_HOME

使用pip安裝的virtualenvwrapper預設建立的虛擬環境放到%USERPROFILE%\Envs資料夾下,我們需要通過環境變數 WORKON_HOME 來自定義需要將虛擬環境存放的位置

  • 開啟設定環境變數視窗
  • 在系統變數下點選新建按鈕
  • 設定變數名為WORKON_HOME,變數值為自己放置虛擬環境的資料夾
    注:windows10在配置後需要重啟才能生效

virtualenvwrapper的使用

瞭解了virtualenvwrapper的功能、安裝,接下來初步學習一下其相關的使用(也可以直接檢視文末的相關文件):

  • 建立虛擬環境:mkvirtualenv 虛擬環境名稱,該命令會在你自定義的WORKON_HOME目錄下建立一個以虛擬環境名稱命名的資料夾,用於存放建立的虛擬環境
    • mkvirtualenv test1表示建立test1 的虛擬環境
    • 如果希望虛擬環境中包含系統直譯器中已經安裝的python包,則使用mkvirtualenv test1 --system-site-packages(預設不包含系統環境中的python包)
    • 如需要指定直譯器,則使用mkvirtualenv --python=python3安裝路徑 test1
      注:如果你係統只安裝了一個版本的python,則該命令只能建立該版本的虛擬環境,而使用conda可以建立其他基於其他python版本的虛擬環境(即使系統中沒有安裝該版本python環境),這個應該屬於conda的優點吧。
  • 啟動虛擬環境:workon test1
  • 退出虛擬環境:deactivate
  • 刪除虛擬環境:rmvirtualenv test1
    注:此時刪除虛擬環境,會將該虛擬環境的資料夾整體刪除,注意對比區別pycharm刪除虛擬環境的情況(參考下文)
  • 檢視所有的虛擬環境:workonlsvirtualenv
    lsvirtualenv會輸出WORKON_HOME所在的路徑,更容易找到虛擬環境的路徑位置
# 其他命令
cdvirtualenv:將當前目錄切換到虛擬環境所在的目錄
    注意要在虛擬環境中執行

更多命令直接檢視文件吧...

3. Pycharm建立虛擬環境

1. 使用Pycharm建立虛擬環境

建立截圖具體如下:

  • 1標號:藉助virtualenv建立虛擬環境
  • 2標號:藉助conda建立虛擬環境
  • 3標號:使用系統直譯器作為專案環境
  • 4標號:藉助Pipenv建立虛擬環境
  • 5標號:暫時忽略
    注:紅色框住的表示建立的python環境是否包含系統已安裝的python包。

2. pycharm建立虛擬環境如何檢視

使用pycharm建立虛擬環境後(不包括上面標號3建立python 環境的方式),該如何檢視已經建立的虛擬環境呢??能否使用virtualenvwrapper檢視到呢?直觀認識上有以下幾種方式:

  • 第一種方式:在pycharm中檢視
    該種方法簡單,直接省略,重點看後面兩種方式
  • 第二種方式:在命令列檢視
    除了第一種方式之外,如果想在命令列檢視一下使用pycharm建立的虛擬環境,該如何實現呢??
    在命令列下,將路徑切換到虛擬環境建立截圖示號5的路徑下:

    • 進入Scripts目錄(注意不是python安裝路徑下的Scripts哈,不要搞混了)
    • 啟用虛擬環境:輸入命令activate.bat,出現2標號則表示虛擬環境已啟用
    • 退出虛擬環境:輸入命令deactivate.bat
  • 第三種方式:在virtualenvwrapper中檢視
    如果想使用virtualenvwrapper檢視pycharm建立的虛擬環境,有個前提是必須將專案或者虛擬環境目錄放到virtualenvwrapper的WORKON_HOME目錄下,建立的虛擬環境與使用virtualenv+virtualenvwrapper建立的方式一樣。具體步驟

    • 在virtualenvwrapper的WORKON_HOME目錄下建立一個資料夾用於存放虛擬環境
    • 在pycharm中建立虛擬環境,注意建立截圖中標號5選擇剛剛建立的資料夾
    • 依次建立即可,然後使用workon命令也可以檢視到使用pycharm建立的虛擬環境

    注意:當刪除該虛擬環境時,如果在pycharm中刪除,則真實的虛擬環境仍然存在開始建立的資料夾下,需要手動進行刪除

3. pycharm刪除虛擬環境

直接在pycharm中刪除相應的虛擬環境(選中,點選減號)即可

注意:該種刪除方式僅僅是斷開Pycharm與虛擬環境的關聯,虛擬環境仍然存在於機器下,如果確實不需要,請到相應的路徑下進行刪除。

4. 參考



來自為知筆記(Wiz)