virtualenv:在一臺機器上運行多個Python環境的利器

1. 簡介

virtualenv 爲用戶提供了一種在一臺機器上運行多個Python環境的工具,應用場合其實有很多,比如你不同的應用依賴的python庫版本不同,這樣你需要不同的python環境纔可以工作。網上有很多相關的介紹,這裏不再重複,說一下我自己的需求。

2. 我的需求

以前我一直用debian,現因爲單位有臺服務器要部署centos,因此在自己電腦上也裝了一個centos,自2006年畢業後就再也沒有用過RH系的Linux系統,用習慣了debian上的大而全的軟件庫,乍一用yum還真不習慣。特別是我經常在自己電腦上上網抓點東西,用到的python庫比較多。而centos的yum庫裏沒有pip(只有easy_install)、沒有ipython、沒有scrapy、沒有pandas、沒有sqlalchemy、沒有django……抓狂,當然也沒有python3。可我又不想直接用easy_install裝一堆不能卸載的東西在/usr/local下。

3. 創建虛擬環境

好在YUM庫裏有virtualenv,直接做個虛擬環境在一個特定目錄下(我是在/usr/local/pythonV,你可以自選),直接運行:

virtualenv /usr/local/pythonV

這個目錄可以將其屬主設置爲普通用戶,這樣你便可以用普通用戶的身份搭建一個python虛擬環境了。運行完後在/usr/local/pythonV下會生成一些python環境必須的二進制文件和相關的核心腳本,還有pip。然後激活這個環境:

source /usr/local/pythonV/bin/activate

然後你的命令行提示符前會有個 (pythonV) ,說明現在的python環境在工作在這個目錄下。然後你可以用pip來安裝需要的python庫了。如果想退出這個虛擬環境,直接運行deactivate即可。

由上圖可以看出,激活虛擬環境前和之後的python路徑是不同的。

4. 在程序中激活

那各位看觀可能要問了,那是不是我每次運行個程序裏還要重新敲命令來激活一下這個虛擬環境嗎?有沒有更方便的方法?當然有,你可以在程序中指定,只需將下列代碼寫進去即可:

activate_this = '/usr/local/pythonV/bin/activate_this.py'
execfile(activate_this, dict(__file__=activate_this))


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