[Python] Python 虛擬機 - virtualenv


virtualenv

virtualenv 用於創建一個隔離的 Python 環境。

每個項目都有自己的依賴包,這些依賴包有時存在版本沖突,處理這種情況最好方法就是為每個項目創建一個專屬的環境。

安裝

穩定版 $ sudo pip install virtualenv

最新版 $ sudo pip install https://github.com/pypa/virtualenv/tarball/develop

用法

創建虛擬環境

1. 創建默認的虛擬環境

$ virtualenv env 命令表示創建一個名為 env 的虛擬環境。每個虛擬環境都包含一個專屬的 env/bin/pythonenv/bin/pip,任何時候運行它們都表示 env 將作為你的運行環境。

2. 創建指定解釋器版本的虛擬環境

如果你的系統中同時安裝了兩個版本的 Python,例如 python2.7 和 python3.4,那么你可以指定創建的虛擬環境中使用哪個版本的 Python。

$ virtualenv -p python2.7 env2.7$ virtualenv -p python3.4 env3.4

3. 創建繼承系統第三方庫的虛擬環境

如果你已經安裝了一些第三方庫在系統的 site-packages 目錄中,你希望在新的虛擬環境中也可以使用它們,那么你可以使用 --system-site-packages 選項:

$ virtualenv --system-site-packages env

啟用和退出虛擬環境

1. 啟用虛擬環境

要啟用 env 虛擬環境,只需要運行 $ source env/bin/activate 命令,該命令會修改系統路徑 $PATH,將 env/bin 路徑置於系統路徑之首。source 命令表示更改當前 Shell 環境。

啟用了虛擬環境后,所有使用 pip 命令新安裝的程序包都將置於當前環境下,而不會影響到系統環境或者其他虛擬環境。

2. 退出虛擬環境

退出虛擬環境只要執行 $ deactivate 命令。

virtualenvwrapper

virtualenvwrapper 是一個基於 virtualenv 之上的工具,它將所有的虛擬環境集中起來管理。

安裝

$ sudo pip install virtualenvwrapper 命令會自動安裝 virtualenvwrapper 及其依賴包 virtualenv, virtualenv-clone

virtualenvwrapper 默認將所有虛擬環境放在 ~/.virtualenvs 目錄下管理,你可以修改環境變量 WORKON_HOME 來指定虛擬環境的保存目錄。

使用 $ source /usr/local/bin/virtualenvwrapper.sh 命令來啟用 virtualenvwrapper,你可以將該命令添加到 ~/.bashrc~/.profile 等 shell 啟動文件中,以便登錄 shell 后可以直接使用 virtualenvwrapper 提供的命令。

用法

1. 創建虛擬環境

$ mkvirtualenv env 命令表示在 $WORKON_HOME 目錄下創建了一個 env 虛擬環境。

2. 啟動虛擬環境

$ workon env 命令表示啟用了 env 虛擬環境。workon 命令會自動停用當前所處的虛擬環境(如果存在的話)然后啟動指定的虛擬環境,這樣你就可以快速在各個虛擬環境之間切換。另外 workon 命令還提供了虛擬環境名稱自動補完功能以幫助你選擇虛擬環境。

3. 退出虛擬環境

執行 $ deactivate 命令退出虛擬環境。

4. 刪除虛擬環境

執行 $ rmvirtualenv env 命令刪除 env 虛擬環境。

5. 其他命令

  • lsvirtualenv 顯示所有虛擬環境。
  • cdvirtualenv 跳轉至當前虛擬環境目錄,方便查看虛擬環境的 site-packages 目錄。
  • cdsitepackages 直接跳轉至當前虛擬環境的 site-packages 目錄。
  • lssitepackages 顯示當前虛擬環境的 site-packages 目錄內容。

autoenv

autoenv 可以讓你進入一個含有 .env 文件的目錄時,自動執行 .env 文件來設置系統環境。

如果進入某個項目目錄時自動激活它所對應的虛擬環境,那么可以在 .env 文件中配置激活期待的虛擬環境。

安裝

$ sudo pip install autoenv 命令自動安裝 autoenv 工具。

使用 $ source /usr/local/opt/autoenv/activate.sh 命令啟用 autoenv 工具,你可以將該命令添加到 ~/.bashrc 等 shell 啟動文件中。

用法

為項目設置特定的系統環境,那么可以在項目根目錄下面新建一個 .env 文件,將所需設定的系統環境寫在 .env 文件中。

當啟用 autoenv 后,它會自動執行 .env 文件。

例如進入 workspaces 目錄自動退出虛擬環境,編輯 workspaces/.env 添加以下內容:

BASE_PATH=`dirname "${BASH_SOURCE}"` 
PWD=`pwd`

if [[ "${BASE_PATH}" == "${PWD}" ]]
then
    declare -f -F deactivate &>/dev/null

    if [[ "${?}" == "0" ]]
    then
        deactivate
    fi
fi

又例如進入 workspaces/project 目錄自動激活虛擬環境,編輯 workspaces/project/.env 添加以下內容:

BASE_PATH=`dirname "${BASH_SOURCE}"`
PWD=`pwd`

if [[ "${BASE_PATH}" == "${PWD}" ]]
then
    if [[ -e bin/activate ]]
    then
        source bin/activate
    fi
fi

附錄


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM