當前位置: 首頁>>技術教程>>正文


如何在Ubuntu中設置和使用虛擬python環境?

, , ,

問題描述

Python虛擬環境用於創建隔離的python環境,以避免依賴和版本衝突,並間接處理權限問題。但是在Ubuntu中設置和使用它的最簡單方法是什麽?

最佳解決思路

使用virtualenvwrapper(virtualenv功能的用戶友好包裝)

安裝virtualenv

安裝virtualenv

sudo apt-get install virtualenv

(對於Ubuntu 14.04(可信)安裝python-virtualenv)

安裝virtualenvwrapper

我們還安裝virtualenvwrapper的原因是它提供了很好的簡單命令來管理您的虛擬環境。有兩種方法可以安裝virtualenvwrapper

作為Ubuntu包(來自Ubuntu 16.04)

sudo apt install virtualenvwrapper

然後運行

echo "source /usr/share/virtualenvwrapper/virtualenvwrapper.sh" >> ~/.bashrc

用pip

  1. 安裝和/或更新點子

    用Python安裝pip for Python

    sudo apt-get install python-pip
    

    或者用於Python 3

    sudo apt-get install python3-pip
    

    (如果使用Python 3,則可能需要在本指南的其餘部分中使用pip3而不是pip)。

    可選(但推薦):為pip啟用bash自動完成功能

    pip completion --bash >> ~/.bashrc
    

    並運行source ~/.bashrc以啟用。

  2. 安裝virtualenvwrapper

    因為我們想要避免使用sudo pip,所以我們在本地安裝virtualenvwrapper(默認情況下在~/.local下):

    pip install --user virtualenvwrapper
    

    echo "export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3" >> ~/.bashrc
    
  3. 源代碼virtualenvwrapper在.bashrc

    echo "source ~/.local/bin/virtualenvwrapper.sh" >> ~/.bashrc
    

設置virtualenv和virtualenvwrapper:

首先,我們導出WORKON_HOME變量,該變量包含存儲虛擬環境的目錄。讓我們來製作這個~/.virtualenvs

export WORKON_HOME=~/.virtualenvs

現在也創建這個目錄

mkdir $WORKON_HOME

並將此導出放在我們的~/.bashrc文件中,以便自動定義此變量

echo "export WORKON_HOME=$WORKON_HOME" >> ~/.bashrc

我們還可以像下麵這樣添加一些extra tricks,這樣可以確保如果pip創建了一個額外的虛擬環境,它也會放在我們的WORKON_HOME目錄中:

echo "export PIP_VIRTUALENV_BASE=$WORKON_HOME" >> ~/.bashrc 

源〜/.bashrc加載更改

source ~/.bashrc

測試它是否有效

現在我們創建第一個虛擬環境。 -p參數是可選的,它用於設置要使用的Python版本;例如,它也可以是python3

mkvirtualenv -p python2.7 test

您將看到將設置環境,並且您的提示現在在括號中包含活動環境的名稱。如果你現在跑了

python -c "import sys; print sys.path"

你應該看到很多/home/user/.virtualenv/...,因為它現在不使用你的係統site-packages。

您可以通過運行來停用您的環境

deactivate

如果你想再次使用它,隻需輸入

workon test

最後,如果要刪除環境,請鍵入

rmvirtualenv test

請享用!


感謝this blogpost的作者。

次佳解決思路

虛擬環境提供了一種管理和隔離per-project依賴關係的方法。此外,它們還避免了整個sudo pip install情況,這是一個安全風險,正如我在https://askubuntu.com/a/802594/15003中所解釋的那樣。官方Python文檔也是encourages the use of virtual environments

為Python 2和Python 3創建和使用虛擬環境的最簡單方法是使用apt或apt-get安裝virtualenv。對於每個Python項目,創建一個virtualenv然後激活它。請注意,virtualenv特定於特定的Python版本。激活後,無論您使用的是Python 2還是3,都可以像往常一樣使用pip來安裝Python軟件包;沒有必要使用pip3 for Python 3. sudo僅用於安裝virtualenv並且不與pip一起使用,因此避免了上述安全風險。這樣做的命令是:

sudo apt update
sudo apt install virtualenv
cd ~/desired_directory  # cd to desired_directory
virtualenv venv  # create virtualenv named venv for default system Python, which is Python 2 for Ubuntu
source venv/bin/activate  # activate virtualenv
pip install -U pip  # upgrade pip in case it is outdated
pip install desired_package  # install desired_package

如果您想為Python 3創建virtualenv,請將virtualenv venv替換為:

virtualenv venv -p python3

https://virtualenv.pypa.io/en/stable/上閱讀更多關於virtualenv的各種鈴聲和口哨聲。

第三種解決思路

這很容易,你安裝python-virtualenv。然後,您可以使用virtualenv命令創建virtualenv。有關更多信息,請參閱their documentation

第四種思路

使用Python 3.3(和Ubuntu 15.10)提供的venv module

虛擬環境(venvs)如此受歡迎,以至於功能現在包含在python本身中(從3.3開始)。要在Ubuntu上使用它,您需要安裝python3-venv(因為ensurepip模塊不可用):

sudo apt-get install python3-venv

之後你可以使用

pyvenv myvirtualenv

創建一個名為myvirtualenv的虛擬環境。然後你可以使用

source myvirtualenv/bin/activate

激活虛擬環境。要停用,隻需輸入

deactivate

編輯:pyvenv腳本已被棄用,轉而使用python3 -m venv。這可以避免混淆Python解釋器pyvenv連接到什麽,從而虛擬環境將使用什麽Python解釋器。 (source)

參考資料

本文由Ubuntu問答整理, 博文地址: https://ubuntuqa.com/zh-tw/article/1127.html,未經允許,請勿轉載。