假設你有兩個python專案-a和b,這兩個專案都需要使用同乙個第三方模組-tensorflow。如果這兩個專案使用相同的tensorflow版本,也許不會有什麼問題。
但是,當a和b專案使用不同的tensorflow版本時-a使用tensorflow 0.70版本;b使用tensorflow 0.80版本。由於python匯入模組不能區分模組版本,導致a、b不能使用tensorflow的不同版本,這在很多情況下是不能接受的。
使用虛擬環境的另乙個好處是:保持開發環境的簡潔、有序。
什麼是python虛擬環境?
python虛擬環境可以為專案建立相互獨立的開發環境,也就是你可以為每個專案安裝各自使用依賴模組。
使用虛擬環境可以很好的解決上面a、b專案遇到的問題:為a、b專案分別建立虛擬環境,然後在各自的虛擬環境中安裝不同的tensorflow版本。
使用虛擬環境需要借助virtualenv或pyvenv,它們的使用非常簡單。
安裝virtualenv、pyvenv
如果你使用python 2,你可以使用pip安裝virtualenv
$sudo pip install virtualenv
如果你使用python 3,它預設安裝了pyvenv。
virtualenv和pyvenv的使用方法類似。由於pyvenv是較新的工具,本帖以它為例。
建立乙個存放虛擬環境的目錄:
$mkdir python-env$cd python-env
建立乙個虛擬環境:
bin/pyvenv-3.6 env_a
上面命令在當前目錄建立了env_a目錄,目錄結構:12
3456
78910
1112
1314
1516
17├──bin
│├──activate
│├──activate.csh
│├──activate.fish
│├──easy_install
│├──easy_install-3.5
│├──pip
│├──pip3
│├──pip3.5
│├──python->python3.5
│├──python3->python3.5
│└──python3.5->/opt/local/library/frameworks/python.framework/versions/3.5/bin/python3.5
├──include
├──lib
│└──python3.5
│└──site-packages
└──pyvenv.cfg
使用建立的虛擬環境env_a:
source env/bin/activate
提示符中包含:
(env_a) [root@localhost python-env]
現在你通過pip安裝的包都會安裝這個虛擬環境中;匯入(import)模組時也只能使用這個虛擬環境中的模組。
如果要退出env_a虛擬環境,執行:deactivate
(env_a)[root@localhost python-env]$deactivate
shell啟動python虛擬環境
開發過程中,會遇到通過shell指令碼呼叫python指令碼,而且這個指令碼有自己的虛擬環境,那麼如何在shell中啟動虛擬環境,並允許python指令碼,很簡單,只要1行 shell指令碼的名稱為 run.sh 內容如下 bin sh source home bruce anaconda3 bin...
python 虛擬環境
sudo apt get install pip pip install upgrade pip sudo apt get install python virtualenv mkdir home virtualenvs export workon home home virtualenvs sou...
python 虛擬環境
由於在 mac 上同時安裝 anaconda2 和 anaconda3 的時候崩潰了多次,現在需要在 python2的環境下進行一些操作,所以需要產生乙個虛擬環境。pip install virtualenv virtualenv path venv name cd path source venv...