Python 虛擬環境 pyenv、venv(pyvenv)、virtualenv之間的區別
Python 虛擬環境 pyenv、venv(pyvenv)、virtualenv之間的區別
另外在python3.6中,虛擬應該用如下命令建立
python3 -m venv /path/to/new/virtual/environment
直接用pyvenv /path/to/new/virtual/environment
建立也能成功,但是會有一個warning,具體解釋可以參考這個文章https://docs.python.org/3/library/venv.html
yy1s@linux-9qk9:~> pyvenv monitor2
WARNING: the pyenv script is deprecated in favour of `python3.6 -m venv`
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
為了解決包依賴、安裝許可權和 python 版本問題,程式設計師們製造了許多工具。我把它們做一個彙總,便於查詢。
這裡介紹的工具都是當前流行的,不會包含已經不再維護的工具。
virtualenv
virtualenv是目前最流行的 python 虛擬環境配置工具。它不僅同時支援 python2 和 python3,而且可以為每個虛擬環境指定 python 直譯器,並選擇不繼承基礎版本的包。
virtualenvwrapper
顧名思義,virtualenvwrapper是對virtualenv的一個封裝,目的是使後者更好用。
關於為什麼使用 shell 指令碼開發,作者專門進行了解釋。
virtualenvwrapper 還有針對 vim 使用者和 emacs 使用者的擴充套件。
virtualenvwrapper 能支援bash/ksh/zsh
,所以我們可以看出,它不支援 Windows。
virtualenvwrapper-win
由於 virtualenvwrapper 基於 shell 開發,因此不能在 Windows 系統上使用。但我們可以使用針對 Windows batch shell 的virtualenvwrapper-win。
venv
Python 從3.3 版本開始,自帶了一個虛擬環境venv,在PEP-405中可以看到它的詳細介紹。它的很多操作都和 virtualenv 類似。
因為是從 3.3 版本開始自帶的,這個工具也僅僅支援 python 3.3 和以後版本。所以,要在 python2 上使用虛擬環境,依然要利用virtualenv。
在 *nix 系統上,可以直接執行pyvenv /path/to/new/virtual/enviorment
來建立一個虛擬環境,在 Windows 系統上,則可以使用python -m venv myenv
來建立。
pyvenv 3.4 在 Ubuntu 14.04 下有 bug,如下:
1
|
pyvenv ➤ python3 -m venv blog
|
解決方法是建立一個不含 pip 的虛擬環境,然後手動安裝 pip :
1
|
pyvenv-3.4 --without-pip venvdir
|
參見:
pyenv
我們可以用許多方法讓不同的 Python 版本在系統上共存。
例如在 OS X 上,如果使用官方提供的 DMG 版本安裝,那麼自帶的 python2 和新安裝的 python3 是可以共存的。python3 可以使用python3
來呼叫,甚至pip
都可以使用pip3
來呼叫。
但如果還有其它小版本需要共存麼?我要記憶多少命令呢?
pyenv用來解決這類問題。它可以安裝、解除安裝、編譯、管理多個 python 版本,並隨時將其中一個設定為工作環境。
pyenv 不支援 Windows 系統。
pywin
Windows 上有一個 pyenv 的替代品,是pywin。它用來在多個安裝的 Python 版本之間進行切換,也支援MSYS/MINGW32。
Python Launcher for Windows
Python 從3.3版本開始(又是3.3?),在 Windows 系統中自帶了一個py.exe啟動工具。如果你是使用 Python.org 官網下載的安裝包安裝的 Python 3.3(或更新版本)環境,那麼可以直接在命令提示符中使用這個工具。
py
可以開啟預設的 python 提示符;py -2.7
和py -3
開啟對應的 Python 版本。
—- 分割線 —-
上面介紹的工具中,前四個是虛擬環境切換工具,後三個是 Python 版本環境切換工具。將這兩套工具結合使用,可以完美解決 python 多版本環境的問題。