常見虛擬環境 virtualenv 與 Anaconda使用


Python 的第三方包成千上萬,在一個 Python 環境下開發時間越久、安裝依賴越多,就越容易出現依賴包沖突的問題。為了解決這個問題,開發者們開發出了 virtualenv,可以搭建虛擬且獨立的 Python 環境。

這樣就可以使每個項目環境與其他項目獨立開來,保持環境的干凈,解決包沖突問題。

virtualenv

virtualenv是一個第三方包,是管理虛擬環境的常用方法之一。此外,Python 3 中還自帶了虛擬環境管理包。

我們可以用easy_install或者pip安裝。

pip install virtualenv

創建項目的虛擬環境

$ cd my_project_folder $ virtualenv venv # venv 可替換為別的虛擬環境名稱 

執行后,在本地會生成一個與虛擬環境同名的文件夾,包含 Python 可執行文件和 pip 庫的拷貝,可用於安裝其他包。

但是默認情況下,虛擬環境中不會包含也無法使用系統環境的global site-packages。比如系統環境里安裝了 requests 模塊,在虛擬環境里import requests會提示ImportError。如果想使用系統環境的第三方軟件包,可以在創建虛擬環境時使用參數–system-site-packages

virtualenv --system-site-packages venv

另外,你還可以自己指定虛擬環境所使用的 Python 版本,但前提是系統中已經安裝了該版本:

virtualenv -p /usr/bin/python2.7 venv

使用虛擬環境

進入虛擬環境目錄,啟動虛擬環境。

cd venv
source bin/activate # Windows 系統下運行 Scripts\
python -V

如果未對命令行進行個性化,此時命令行前面應該會多出一個括號,括號里為虛擬環境的名稱。啟動虛擬環境后安裝的所有模塊都會安裝到該虛擬環境目錄里。

退出虛擬環境:

deactivate

如果項目開發完成后想刪除虛擬環境,直接刪除虛擬環境目錄即可。

 

如果安裝的時候沒有bin目錄:

Virtualenv在執行虛擬環境建立后沒有bin目錄的處理
使用環境:

window 7 64位
python 3.5.1
virtualenv 15.1.0

正常安裝virtualenv:

pip install virtualenv
建立第一個虛擬環境

virtualenv env
發現虛擬目錄中只有四個目錄和一個文件,沒有bin目錄

\Include
\lib
\Scripts
\tcl
pip-selfcheck

經過檢查,發現啟動虛擬環境的需要的命令都在\Scripts中,如下:

├─Scripts
│ activate
│ activate.bat
│ activate.ps1
│ activate_this.py
│ deactivate.bat
│ easy_install-3.5.exe
│ easy_install.exe
│ pip.exe
│ pip3.5.exe
│ pip3.exe
│ python.exe
│ python35.dll
│ pythonw.exe
│ wheel.exe

因為沒有bin目錄,所以不能執行 source .\bin\activate 命令激活虛擬環境。

經過實驗,可以在虛擬環境目錄內執行下方命令啟動虛擬環境

.\scripts\activate.bat

關閉虛擬環境需要執行下方的命令

.\scripts\deactivat.bat

 

使用visualenv與anaconda的區別:

使用visualenv前提條件是,Python以及pip事先已經存在了,而使用anaconda是不需要安裝python和pip的,因為annaconda都涵蓋了。

另外,有些時候因為權限什么的,直接使用pip 或者在visualenv中安裝包報錯的情況下,不如直接使用anaconda,因為里面涵蓋了很多wheel,直接pip install  XX  或者conda install XX即可 

 

anaconda常用命令

 

1、查看已安裝的包
conda list
2、更新所有包
conda upgrade --all
3、安裝包
conda install package_name
4、刪除包
conda remove package_name
5、更新包
conda update package_name
6、不知道包名要找包
conda search name
7、用conda建立虛擬環境
conda create -n env_name list_of_packages
其中 -n 代表 name,env_name 是需要創建的環境名稱,list of packages 則是列出在新環境中需要安裝的工具包。
例如,當我安裝了 Python3 版本的 Anaconda 后,默認的 root 環境自然是 Python3,但是我還需要創建一個 Python 2 的環境來運行舊版本的 Python 代碼,最好還安裝了 pandas 包,於是我們運行以下命令來創建:

conda create -n py2 python=2.7 pandas

細心的你一定會發現,py2 環境中不僅安裝了 pandas,還安裝了 numpy 等一系列 packages,這就是使用 conda 的方便之處,它會自動為你安裝相應的依賴包,而不需要你一個個手動安裝。
8、進入虛擬環境
source activate env_name
9、退出虛擬環境
source deactivate
10、刪除名為 env_name 的環境
conda env remove -n env_name
11、顯示所有的環境:
conda env list
12、當分享代碼的時候,同時也需要將運行環境分享給大家,執行如下命令可以將當前環境下的 package 信息存入名為 environment 的 YAML 文件中
conda env export > environment.yaml
13、使用別人生成的yaml文件創建環境
conda env create -f environment.yaml



作者:喔蕾喔蕾喔蕾蕾蕾
鏈接:https://www.jianshu.com/p/6d7de7a00b8d
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯系作者獲得授權並注明出處。


免責聲明!

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



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