1. 程式人生 > >python——虛擬環境(一)

python——虛擬環境(一)

退出 com http 包名 輸入a 文件夾 版本 文件 pan

1 問題

  當我們擁有兩個甚至多個項目A、B、C......,各個項目正常運行需求的python運行環境都不相同。而默認情況下,不管哪個項目,使用的都是全局的Python環境。上述情況,造成的問題就是,A、B、C等項目,只能運行一個;如果運行另一個,必須安裝與之匹配的庫版本。

2 解決思路

  創建一個完全獨立的局部python環境(或叫做虛擬環境)。在此環境中,安裝所有與某個項目相匹配庫即可。總之,一個項目,使用一個虛擬環境;互相之間,沒有幹擾。

3 具體解決步驟

  3.1 安裝第三方包virtualenv

    當電腦裏面有多個版本的python的時,可以指定版本來進行安裝。代碼見下:

      pip install virtualenv

      或者

      python3 -m pip install virtualenv

   

  3.2 virtualenv的簡單應用

    3.2.1 創建一個局部的隔離的虛擬環境

     打開命令提示符,cd進入到項目myproject(必須根據自己的項目進行修改)所在路徑,創建項目myproject的虛擬環境。

      (1) 語法
        virtualenv 虛擬環境名稱
        例如:virtualenv ENV
      (2) 可選參數

      (i) -p :指明Python版本創建,到時候就使用此版本的解釋器,默認是你安裝viretual 包的時候,用的python解釋器
      例如:virtualenv -p C:\Python27\python.exe ENV
      (ii) --system-site-packages

:繼承系統的三方庫。到時候,檢索庫的時候,也會到系統的三方庫中查找,如果不加此項,到時候只會在當前的虛擬環境中找
      例如:virtualenv --system-site-packages ENV

     創建完成後,會在myproject文件夾下自動生成一個ENV文件夾,效果見下圖:

 技術分享圖片

    ENV文件夾裏面的內容見下圖:

    技術分享圖片

    3.2.2 激活虛擬環境
      (1) 語法
        打開命令提示符,進入到虛擬環境目錄/scripts文件夾中,輸入activate.bat
      (2) 界面效果

    技術分享圖片

      (3) 作用效果
        在環境的激活狀態,後續所有的操作都是基於這個虛擬的Python環境包的安裝和卸載。代碼的執行,比如:pip install 包名(如requests)
      如果不激活創建的虛擬環境,到時候會被安裝在全局Python環境中。激活後,則會安裝在虛擬環境中。

    3.2.3 在激活狀態下的操作
      操作三方庫、執行py文件等等
      註意:以上所有操作,均作用在被激活的虛擬環境中

    3.2.4 退出虛擬環境
      (1) 語法
        進入到虛擬環境目錄/scripts文件夾中,輸入命令deactivate.bat
      (2) 界面效果
    技術分享圖片

      (3) 作用效果
        
退出後,所有後續操作,又會再次的作用於全局的Python環境中
    
3.2.5 刪除虛擬環境

      直接把項目文件目錄下的ENV文件夾刪除即可。

  更多使用命令見官網:https://virtualenv.pypa.io/en/latest/userguide/

4 補充
  
以後把項目給別人的時候,就可以連同虛擬環境和項目一起拷貝給別人。但是當虛擬環境非常大的時候,這種方法顯然不實際。這就需要用到另一種方法了。
即在虛擬環境中,凍結依賴需求文本,把項目和依賴需求文本給別人。

python——虛擬環境(一)