centos 下Python獨立虛擬環境創建


virtualenv 

Python有着龐大的開源社區的支持,很自然就產生這么一個問題:第三方包參差不齊,如果我們想在服務器測試,或者升級某個包,就會導致生產環境產生雜亂,多余的第三方依賴包。

virtualenv就是來解決這個問題的,virtualenv可以生成多個的Python環境,各個環境相互獨立,互不影響,且和正式環境一模一樣。

1、安裝
pip install virtualenv
2、用法:
(1)創建ENV:virtualenv ENV
該命令會創建一個安裝包存放目錄:ENV/lib/pythonX.X/site-packages,同時還會為該虛擬環境創建一個Python解釋器:ENV/bin/python。
在Python腳本頭加上:#!/path/to/ENV/bin/python,意味着使用該虛擬環境的Python解釋器以及第三方依賴包。
當然,我們還可以加上參數:—system-site-packages, virtualenv --system-site-packages ENV,這樣就意味着該虛擬環境將會繼承我們的全局Python環境的site-packages目錄,也就是說,全局環境的第三方依賴包都能在該虛擬環境下使用。
(2)進入ENV:source ENV/bin/activate
執行該命令將會修改shell環境變量,將環境變量$PATH的第一個入口動態修改為:EVN/bin目錄。這樣,我們在shell交互環境下,輸入python,就會使用當前干凈
的虛擬環境另外。當然這么做只是一個便利,我們也可以不修改環境變量(即不使用source命令),直接用當前虛擬環境的解釋器運行腳本:ENV/bin/pthon script.py
(3)在虛擬環境安裝第三方插件
pip install [插件名稱]
Virtualenv 附帶有pip安裝工具,因此需要安裝的套件可以直接運行:
ENV/bin/pip install [插件名稱]
如果沒有啟動虛擬環境,系統也安裝了pip工具,那么套件將被安裝在系統環境中,為了避免發生此事,可以在~/.bashrc文件中加上:
export PIP_REQUIRE_VIRTUALENV=true
或者讓在執行pip的時候讓系統自動開啟虛擬環境:

export PIP_RESPECT_VIRTUALENV=true

(4) deactivate ;將原來的環境變量修改回來。現在我們就退出了虛擬環境,回到全局Python環境下了。


Virtualenvwrapper

Virtaulenvwrapper是virtualenv的擴展包,用於更方便管理虛擬環境,它可以做:1. 將所有虛擬環境整合在一個目錄下2. 管理(新增,刪除,復制)虛擬環境3. 切換虛擬環境

安裝
sudo easy_install virtualenvwrapper  
此時還不能使用virtualenvwrapper,默認virtualenvwrapper安裝在/usr/local/bin下面,實際上你需要運行virtualenvwrapper.sh文件才行,先別急,打開這個文件看看,里面有安裝步驟,我們照着操作把環境設置好。
1、創建目錄用來存放虛擬環境
2、在~/.bashrc中添加行:export WORKON_HOME=$HOME/.virtualenvs
3、在~/.bashrc中添加行:source /usr/local/bin/virtualenvwrapper.sh
4、運行: source ~/.bashrc
此時virtualenvwrapper就可以使用了。 
列出虛擬環境列表
workon,也可以使用:lsvirtualenv
(1)新建虛擬環境
mkvirtualenv [虛擬環境名稱]
(2)啟動/切換虛擬環境
workon [虛擬環境名稱]
(3)刪除虛擬環境
rmvirtualenv [虛擬環境名稱]
(4)離開虛擬環境

deactivate

 

問題:

此時如果遇到下面問題:(Linux)

virtualenvwrapper.sh no such file or directory,即virtualenvwrapper.sh沒有成功的安裝在/usr/local/bin目錄下,則可以使用下列方式解決:

pip uninstall virtualenvwrapper    卸載virtualenvwrapper

pip install virtualenvwrapper  重新安裝virtualenvwrapper

這時候就能成功的在/usr/local/bin下看到該sh文件了

由於本人使用(OSX),也同樣遇到該文件不存在的問題,也是使用同樣的方法(先卸載,再重新安裝)解決:

最終該文件被寫入到:

$HOME/anaconda/bin目錄下(本人機器使用了anaconda環境)

運行 source ~/.zshrc,報錯:/usr/bin/python: No module named virtualenvwrapper
virtualenvwrapper.sh: There was a problem running the initialization hooks.If Python could not import the module virtualenvwrapper.hook_loader,
check that virtualenvwrapper has been installed for
VIRTUALENVWRAPPER_PYTHON=/usr/bin/python and that PATH is
set properly.

這時候可以將VIRTUALENVWRAPPER_PYTHON路徑(python全局路徑)加入到~/.zshrc中,vim ~/.zshrc

VIRTUALENVWRAPPER_PYTHON=$HOME/anaconda/bin/python

再執行:source ~/.zshrc,成功!


免責聲明!

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



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