Python虛擬環境搭建及管理

可以直接參考文檔

Linux下 虛擬環境管理

virtualenv安裝

  1. 安裝 pip install virtualenv
  2. 查看是否安裝成功 virtualenv --version
  3. 查看幫助 virtualenv --help

virtualenv 使用

  1. 創建一個測試用的虛擬環境

    virtualenv my_test_env -p  python3
    

    -p 用來指定python版本 如果python添加了軟連接可以像我一樣指定,如果沒有添加軟連接,可以直接定位到python執行文件 /usr/local/python3/bin/python
    如果創建虛擬環境時不選擇指定的python版本, 那麼虛擬環境創建後默認就是系統默認的python版本.

  2. 激活虛擬環境

    	cd my_test_env
    	source ./bin/activate
    
  3. 查看虛擬環境python版本,pip版本

    	python -v
    	pip -v
    
  4. 退出虛擬環境

    	deactivate
    
  5. 刪除虛擬環境 只需要刪除my_test_env 目錄即可

如果沒有啓動虛擬環境,系統環境也安裝了pip工具,那麼packages將被安裝在系統環境

爲了避免發生此事,可以在~/.bashrc文件中加上
vim ~/.bashrc
export PIP_REQUIRE_VIRTUALENV=true
使配置生效 source ~/.bashrc

如果在沒開啓虛擬環境時, 在虛擬環境之外的系統上運行pip,就會提示錯誤:“Could not find an activated virtualenv (required)”.

virtualenv 用法小總結

  1. 創建環境
    virtualenv [新環境名] :這會再當前目錄下創建一個新環境目錄
    可使用 virtualenv --help 來查看如何使用。可以使用參數 --python=/usr/bin/python3 來創建一個已經安裝的的Python環境。

  2. 使用環境
    切換到項目的新環境目錄
    執行:source ./bin/activate 來激活環境,激活後在命令行的前面會出現新環境名稱
    接下來可使用pip命令安裝新環境需要的各種包。(pip命令在創建新環境時自帶)

  3. 退出虛擬環境
    deactivate
    如果要刪除虛擬環境,只需退出虛擬環境後,刪除對應的虛擬環境目錄即可。不影響其他環境。

  4. 注意事項
    如果沒有啓動虛擬環境,系統也安裝了pip工具,那麼套件將被安裝在系統環境中,爲了避免發生此事,可以在~/.bashrc文件中加上:export PIP_REQUIRE_VIRTUALENV=true
    或者讓在執行pip的時候讓系統自動開啓虛擬環境:export PIP_REQUIRE_VIRTUALENV=true

  5. 保證環境一致性
    用pip freeze查看當前安裝版本
    pip freeze

另外:
pip freeze > requirements.txt
這將會創建一個 requirements.txt 文件,其中包含了當前環境中所有包及 各自的版本的簡單列表。
可以使用 "pip list"在不產生requirements文件的情況下, 查看已安裝包的列表。

這將會使另一個不同的開發者(或者是你本人,如果你本人需要重新創建這樣的環境) 在以後安裝相同版本的相同包變得容易。
將這個requirements.txt拷貝到新的機器環境下執行:
#pip install -r requirements.txt

這能幫助確保安裝、部署和開發者之間的一致性。

虛擬環境管理工具 - Virtualenvwrapper

virtualenv使用起來不是很方便,因爲virtual的啓動、停止腳本都在特定目錄,可能一段時間後,你可能會有很多個虛擬環境散落在系統各處,你可能忘記它們的名字或者位置。鑑於virtualenv不便於對虛擬環境集中管理,所以推薦直接使用virtualenvwrapper。

virtualenvwrapper提供了一系列命令使得和虛擬環境工作變得便利。它把你所有的虛擬環境都放在一個地方。

Virtaulenvwrapper是virtualenv的擴展包,用於更方便管理虛擬環境,它可以做:

  • 將所有虛擬環境整合在一個目錄下;
  • 管理(新增,刪除,複製)虛擬環境;
  • 切換虛擬環境等等.
  1. 安裝virtualenvwrapper (確保virtualenv已提前安裝)

    pip install virtualenvwrapper
    
  2. 設置環境變量

    export WORKON_HOME=~/Envs
    
  3. 創建虛擬環境管理目錄. 即創建的虛擬環境都會放到上面設置的~/Envs目錄下面

    mkdir -p $WORKON_HOME
    
  4. 在~/.bashrc文件裏配置環境變量, 添加下面兩行

    vim ~/.bashrc
    export WORKON_HOME=~/Envs
    source /usr/bin/virtualenvwrapper.sh
    
  5. 使得以上環境變量的配置生效

    source ~/.bashrc
    
  6. 現在開始使用Virtualenvwrapper 管理虛擬機
    (可以刪除上面之前創建的虛擬環境 my_test_env 了, 後續都將使用Virtualenvwrapper創建和管理虛擬環境)

    1. 使用mkvirtualenv 命令創建虛擬環境

      mkvirtualenv  my_test_env_new --python python3
      
      mkvirtualenv project_hui --python=/usr/local/python3/bin/python3.6.1
      
    2. deactivate 退出虛擬環境

    3. 使用 lsvirtualenv 查看所有虛擬環境

    4. 使用 workon 切換虛擬環境

    5. 刪除虛擬環境 rmvirtualenv my_test_env_new

    6. 使用lssitepackages命令顯示 虛擬環境的 site-packages 目錄中的內容。

    7. 使用cdvirtualenv命令導航到當前激活的虛擬環境的目錄中,比如說這樣就能夠瀏覽它的site-packages。

    8. 使用cdsitepackages命令直接進入到 site-packages 目錄中, 和上面的cdvirtualenv 類似

    爲了方便運維管理, 可以進行一些別名設置, 如下:

    vim ~/.bashrc
    #virtualenv
    alias vte=‘virtualenv’
    alias mkvte=‘mkvirtualenv’
    alias deact=‘deactivate’
    alias rmvte=‘rmvirtualenv’
    alias lsvte=‘lsvirtualenv’
    alias won=‘workon’
    使得上面配置生效 source ~/.bashrc
    使用別名進行操作 lsvte

virtualenv使用時遇到的一個坑點, 經常排查驗證, 得出結論如下:

  1. root用戶和普通用戶都可以創建虛擬環境(比如虛擬環境名稱爲venv),venv虛擬環境的相關文件和文件夾的owner都是該用戶,
    如果是非root的其他用戶激活該venv虛擬環境的話,會因爲文件權限的問題導致python庫安裝失敗!!
    所以說: 非root用戶不要去激活使用其他用戶創建的venv虛擬環境!

  2. 一旦以用戶A的身份激活venv虛擬環境後,在虛擬環境中就不能再通過su命令切換其他用戶,否則會自動退出虛擬環境!
    所以說: 在虛擬環境中不要通過su切換用戶!

  3. 以用戶A的身份激活某venv虛擬環境後,在虛擬環境中所有通過"sudo + cmd"執行的命令,都等同於在虛擬環境外執行。
    所以說: 在虛擬環境中不要通過sudo執行命令

win10環境下搭建virtualenvwrapper-win

  1. pip install virtualenv
  2. pip install virtualenvwrapper-win
  3. 設置系統環境變量 WORKON_HOME= '設置你想統一管理虛擬環境的路徑'
  4. 創建虛擬環境 mkvirtualenv test ( 此環境在你剛纔配置的環境變量路徑下)
  5. 創建指定python版本的虛擬環境 mkvirtualenv -p python3 test
  6. 查看所有虛擬環境 workon
  7. 進入虛擬環境 workon xxx
  8. 退出虛擬環境 deactivate
  9. 刪除虛擬環境 mvirtualenv test(虛擬環境名稱)
  10. 查看虛擬環境下的安裝包 pip list

生成項目所需要的的第三方包依賴文件
pip freeze >requirements.txt
安裝
pip install -r requirements.txt

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章