前言
在網(wǎng)上查了很多關(guān)于virtualenv
和conda
的信息,發(fā)現(xiàn)絕大多數(shù)都是講述在linux
下的部署,這也是愁煞了我這類金融狗了,linux
沒有wind資訊啊,如何是好?所以想專門寫一篇小博客,講述一下virtualenv
和conda
的區(qū)別和部署方式,并且以windows 10
的環(huán)境為基礎(chǔ)。同時也會考慮wind客戶端的Python接口的問題。
我的系統(tǒng)環(huán)境如下:
- window 10 64bit
- anaconda2 32bit
- anaconda3 64bit
- wind的量化插件WindNet
首先用一句最簡單的話去概括virtualenv
,pip
和conda
的區(qū)別:
如果你過去使用pip
和virtualenv
,那么你可以用conda
實現(xiàn)前兩者所有的功能,pip
是一個包管理器,virtualenv
是一個環(huán)境管理器,而conda
就是它們倆的綜合體。具體的功能羅列以及相應(yīng)的命令行請查看官網(wǎng)。(翻譯自conda官網(wǎng))
pip機制非常好理解,下面我來簡單闡述一下virtualenv
和conda
一般情形下的virtualenv使用
注意:請不要使用PowerShell
去執(zhí)行virtualenv
命令,換成cmd
去執(zhí)行才可以。
- 首先
virtualenv
是一個package
,需要安裝
pip install virtualenv
- 其次,需要到項目目錄下生成一個虛擬環(huán)境
cd my_project_folder
virtualenv venv
輸出以下結(jié)果:
New python executable in your_path\my_project_folder\venv\Scripts\python.exe
可以看到上面的第二句命令會創(chuàng)建一個包含Python
可執(zhí)行文件,以及pip,setuptools,wheel
等一些和包安裝相關(guān)的庫。虛擬環(huán)境名稱可寫可不寫(你可以直接輸入virtualenv
),如果不寫則會在當(dāng)前目錄,即my_project_folder
下直接生成剛才講到的文件。
- 啟動虛擬環(huán)境(注意請在
cmd
下啟動虛擬環(huán)境,而不是PowerShell
)
進入到venv\Scripts\
目錄下,直接在命令行內(nèi)輸入activate
即可啟動虛擬環(huán)境。會在最左邊出現(xiàn)一個(venv)
的標(biāo)注,表示已經(jīng)進入到了venv
的虛擬環(huán)境。
(venv) your_path\my_project_folder\howl\venv\Scripts>
此時如果你直接輸入
pip install flask
則會在該虛擬環(huán)境下安裝flask。
- 運用虛擬環(huán)境
在my_project_folder
下的直接執(zhí)行python文件就可以了。 - 多Python環(huán)境下創(chuàng)建virtualenv
筆者電腦里安裝有anaconda2和anaconda3。virtualenv指令使用的是anaconda2下的命令,anaconda3下的virtualenv命令是被覆蓋的,但是我們并不需要專門在修改virtualenv執(zhí)行文件名去使用anaconda3下的virtualenv,只需要在創(chuàng)建虛擬環(huán)境的時候輸入一個解釋器路徑即可,如下所示:
virtualenv -p D:/ApplicationForDeveloper\Anaconda3\python3.exe venv
-
關(guān)于WindPy(主要針對金融狗而言)
如果你的程序里面存在from WindPy import w
,那么這個虛擬環(huán)境下運行改程序就會報錯。
Traceback (most recent call last):
File "main.py", line 3, in <module>
from WindPy import w
ImportError: No module named WindPy
這個問題,恐怕沒法解決,因為wind
的Python
接口不是由pip
安裝的,在安裝python
插件的時候,程序自動查找該系統(tǒng)下的python
環(huán)境,然后直接將windPy
安裝到這個環(huán)境下的site-packages
下面。
安裝Wind的Python接口時,顯示的日志是這樣的:
很遺憾,這個是我們沒法通過pip來控制的,但是可以通過繼承的方式導(dǎo)入wind的Python插件,建立virtualenv的時候輸入以下命令:
virtualenv --sytem-site-package venv
此外安裝WindPy后,在cmd下運行python文件沒有問題,但是在ipython里面運行就會報錯:ImportError: No module named WindPy
PyCharm下的virtualenv的使用
如果