Mac上使用virtualenv搭建虛擬環境

來源:互聯網
上載者:User

問題:

在開發過程中如果想要安裝Python包時可以使用“sudo pip install 包名”來安裝。

在開發不同項目時使用同一個包的不同版本,都是用上面的命令進行安裝會造成其他項目無法運行(覆蓋掉了)。

解決方案:

虛擬環境

虛擬環境可以搭建獨立的Python運行環境,使單個項目運行環境和其他項目運行環境互不影響。


下面介紹一下安裝方法:

1. 安裝virtualenv ---- sudo pip install virtualenv

測試:

$ mkdir testvirtualenv

$ cd testvirtualenv

$ virtualenv  env1 ------就可以成功建立一個虛擬環境env1


2. 安裝virtualenvwrapper ----- sudo easy_install virtualenvwrapper  (我使用pip 沒有安裝成功,所以使用的easy_install)

virtualenvwrapper是virtualenv的擴充包,可以更方便的新增、刪除、複製、切換虛擬環境。


3.安裝完virtualenvwrapper使用virtualenvwrapper.sh需要配置一下環境變數直接把下面兩行寫入~/.bash_profile檔案中即可:

export WORKON_HOME='~/workspace'              ##這個目錄為建立虛擬環境是所在的目錄,可以自己指定目錄
source /usr/local/bin/virtualenvwrapper.sh

在配置完環境變數以後執行一下source ~/.bash_profile命令,不然不生效


4.來測試一下,建立兩個虛擬環境env1、env2

$ mkvirtualenv env1       (建立虛擬環境env1)

建立成功以後當前路徑前面就會有(env1)



$mkvirtualenv env2        (建立虛擬環境env2)


下面是一些常用的基本命令

1.退出當前虛擬環境

$deactivate

2.列出虛擬環境列表

$lsvirtualenv -b

env1

env2

3.切換虛擬環境

$workon env2

4.進入當前虛擬環境

$cdvirtualenv

5.刪除虛擬環境

$rmvirtualenv env1

6.進入當前環境的site-packages

$cdsitepackages

7.查看環境中安裝了哪些包

$lssitepackages

8.複製虛擬環境

$cpvirtualenv env1 env3


讓我們來安裝一些包試試(在虛擬環境中安裝包不用sudo)

$workon env1

$pip install numpy

$pip install scipy

$pip install matplotlib

$ pip install ipython

$pip install pandas

$pip install scikit-learn


執行lssitepackages來查看env1中已經安裝的包多了很多

workon env2   切換到env2

$lssitepackages   可以看到在env2中並沒有剛才在env1中安裝的包。


就這樣啦不同的環境互不影響、互不傷害^_^


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.