前言
作者:跃啊跃 链接:https://www.jianshu.com/p/e767e2910ee9
在网上查了很多关于virtualenv 和conda 的信息,发现绝大多数都是讲述在linux 下的部署,这也是愁煞了我这类金融狗了,linux 没有wind资讯啊,如何是好?所以想专门写一篇小博客,讲述一下virtualenv 和conda 的区别和部署方式,并且以windows 10 的环境为基础。同时也会考虑wind客户端的Python接口的问题。
我的系统环境如下:
- window 10 64bit
- anaconda2 32bit
- anaconda3 64bit
- wind的量化插件WindNet
首先用一句最简单的话去概括virtualenv ,pip 和conda 的区别:
如果你过去使用pip 和virtualenv ,那么你可以用conda 实现前两者所有的功能,pip 是一个包管理器,virtualenv 是一个环境管理器,而conda 就是它们俩的综合体。具体的功能罗列以及相应的命令行请查看官网。(翻译自conda官网)
pip机制非常好理解,下面我来简单阐述一下virtualenv 和conda
一般情形下的virtualenv使用
注意:请不要使用PowerShell 去执行virtualenv 命令,换成cmd 去执行才可以。
- 首先
virtualenv 是一个package ,需要安装
pip install virtualenv
- 其次,需要到项目目录下生成一个虚拟环境
输出以下结果:
New python executable in your_path\my_project_folder\venv\Scripts\python.exe
可以看到上面的第二句命令会创建一个包含Python 可执行文件,以及pip,setuptools,wheel 等一些和包安装相关的库。虚拟环境名称可写可不写(你可以直接输入virtualenv ),如果不写则会在当前目录,即my_project_folder 下直接生成刚才讲到的文件。
- 启动虚拟环境(注意请在
cmd 下启动虚拟环境,而不是 PowerShell ) 进入到venv\Scripts\ 目录下,直接在命令行内输入 activate 即可启动虚拟环境。会在最左边出现一个(venv) 的标注,表示已经进入到了venv 的虚拟环境。
(venv) your_path\my_project_folder\howl\venv\Scripts>
此时如果你直接输入
pip install flask
则会在该虚拟环境下安装flask。
- 运用虚拟环境
在my_project_folder 下的直接执行python文件就可以了。 - 多Python环境下创建virtualenv
笔者电脑里安装有anaconda2和anaconda3。virtualenv指令使用的是anaconda2下的命令,anaconda3下的virtualenv命令是被覆盖的,但是我们并不需要专门在修改virtualenv执行文件名去使用anaconda3下的virtualenv,只需要在创建虚拟环境的时候输入一个解释器路径即可,如下所示:
virtualenv -p D:/ApplicationForDeveloper\Anaconda3\python3.exe venv
- 关于WindPy(主要针对金融狗而言)
如果你的程序里面存在from WindPy import w ,那么这个虚拟环境下运行改程序就会报错。
Traceback (most recent call last): File "main.py", line 3, in <module> ImportError: No module named WindPy
这个问题,恐怕没法解决,因为wind 的Python 接口不是由pip 安装的,在安装python 插件的时候,程序自动查找该系统下的python 环境,然后直接将windPy 安装到这个环境下的site-packages 下面。 安装Wind的Python接口时,显示的日志是这样的:
很遗憾,这个是我们没法通过pip来控制的,但是可以通过继承的方式导入wind的Python插件,建立virtualenv的时候输入以下命令:
virtualenv --sytem-site-package venv
此外安装WindPy后,在cmd下运行python文件没有问题,但是在ipython里面运行就会报错:ImportError: No module named WindPy
PyCharm下的virtualenv的使用
如果
PyCharm下的conda的使用
|