如何安装并使用conda指令管理python环境


Posted in Python onJuly 10, 2019

一、动机

最近打算折腾vn.py,但只有py27版本的,因为一向习惯使用最新稳定版的,所以不得不装py27的环境,不得不说
Python的全局锁真的很烦。

身为懒癌患者,必然使用全功能的anaconda,但不想同时装py27和py35两个版本的anaconda巨无霸(同时装两个,
不知道conda是否也可以管理环境),于是选择用conda装python27的环境及一些必要的包。

弄了几天终于把办公电脑和家里的Mac机上的环境都配好了,即使有了官方的安装教材,也踩了不少坑。

(因为国内主要的期货交易API接口只有windows和linux版,所以Mac上的环境只能用来回测,无法使用vn.py的模拟交易和实盘功能。)

二、Anaconda的安装

Anaconda的下载页参见官网下载,Linux、Mac、Windows均支持。

安装时,会发现有两个不同版本的Anaconda,分别对应Python 2.7和Python 3.5,两个版本其实除了这点区别外其他都一样。后面我们会看到,安装哪个版本并不本质,因为通过环境管理,我们可以很方便地切换运行时的Python版本。(由于我常用的Python是2.7和3.4,因此倾向于直接安装Python 2.7对应的Anaconda)

下载后直接按照说明安装即可。这里想提醒一点:尽量按照Anaconda默认的行为安装——不使用root权限,仅为个人安装,安装目录设置在个人主目录下(Windows就无所谓了)。这样的好处是,同一台机器上的不同用户完全可以安装、配置自己的Anaconda,不会互相影响。

对于Mac、Linux系统,Anaconda安装好后,实际上就是在主目录下多了个文件夹(~/anaconda)而已,Windows会写入注册表。安装时,安装程序会把bin目录加入PATH(Linux/Mac写入~/.bashrc,Windows添加到系统变量PATH),这些操作也完全可以自己完成。以Linux/Mac为例,安装完成后设置PATH的操作是

# 将anaconda的bin目录加入PATH,根据版本不同,也可能是~/anaconda3/bin
echo 'export PATH="~/anaconda2/bin:$PATH"' >> ~/.bashrc
# 更新bashrc以立即生效
source ~/.bashrc

配置好PATH后,可以通过which conda或conda --version命令检查是否正确。假如安装的是Python 2.7对应的版本,运行python --version或python -V可以得到Python 2.7.12 :: Anaconda 4.1.1 (64-bit),也说明该发行版默认的环境是Python 2.7。

三、环境管理

conda常用命令

查看当前系统下的环境

conda info -e

创建新的环境

# 指定python版本为2.7,注意至少需要指定python版本或者要安装的包# 后一种情况下,自动安装最新python版本
conda create -n env_name python=2.7
# 同时安装必要的包
conda create -n env_name numpy matplotlib python=2.7

环境切换

# 切换到新环境# linux/Mac下需要使用source activate env_name
activate env_name
#退出环境,也可以使用`activate root`切回root环境
deactivate env_name

移除环境

conda remove -n env_name --all

四、包管理

给某个特定环境安装package有两个选择,一是切换到该环境下直接安装,二是安装时指定环境参数-n

activate env_nameconda install pandas
# 安装anaconda发行版中所有的包
conda install anaconda
conda install -n env_name pandas

查看已经安装的package

conda list
# 指定查看某环境下安装的package
conda list -n env_name

查找包

conda search pyqtgraph

更新包

conda update numpy
conda update anaconda

卸载包

conda remove numpy

五、vnpy环境配置中遇到的疑难杂症

1、64位系统和root环境下指定安装32位

vnpy在window系统下使用的python版本和package都是32位的,但除非下载anaconda时就下载32位版本。

现在大多数系统都是64位了吧,我装的也是64位,那么用conda安装时默认64位,stackoverflow了发现解 决方案,安装前设置使用32位:

# 设置32位set CONDA_FORCE_32BIT=1
conda create -n env_name python=2.7
conda install numpy pandas
# 切回系统默认set CONDA_FORCE_32BIT=

2、设置国内镜像

家里用的长城宽带,访问国外资源的网速简直不能忍,于是看了下conda有没有国内的镜像。然后真找到了一个
清华大学TUNA镜像清华大学 TUNA 镜像源
网站有添加方法

# 需要去掉网址的引号
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/conda config --set show_channel_urls yes

如果命令行方法添加不上,可以在用户目录下的.condarc中添加https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/:

如果没有该文件可以直接创建,Windows为C://Users/username/.condarc,Linux/Mac为~/.condarc

结果如下:

channels:
 - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ 
 - defaults
show_channel_urls: yes

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
二种python发送邮件实例讲解(python发邮件附件可以使用email模块实现)
Dec 03 Python
为Python的Tornado框架配置使用Jinja2模板引擎的方法
Jun 30 Python
解决Scrapy安装错误:Microsoft Visual C++ 14.0 is required...
Oct 01 Python
python使用folium库绘制地图点击框
Sep 21 Python
python实现局域网内实时通信代码
Dec 22 Python
将python包发布到PyPI和制作whl文件方式
Dec 25 Python
python DataFrame转dict字典过程详解
Dec 26 Python
基于Tensorflow批量数据的输入实现方式
Feb 05 Python
解决Keras TensorFlow 混编中 trainable=False设置无效问题
Jun 28 Python
Pandas直接读取sql脚本的方法
Jan 21 Python
python 获取计算机的网卡信息
Feb 18 Python
解决Pytorch dataloader时报错每个tensor维度不一样的问题
May 28 Python
python变量的存储原理详解
Jul 10 #Python
python中 * 的用法详解
Jul 10 #Python
通过python实现随机交换礼物程序详解
Jul 10 #Python
Python实现简单的列表冒泡排序和反转列表操作示例
Jul 10 #Python
Python获取好友地区分布及好友性别分布情况代码详解
Jul 10 #Python
Python中的类与类型示例详解
Jul 10 #Python
使用python打印十行杨辉三角过程详解
Jul 10 #Python
You might like
PHP配置文件中最常用四个ini函数
2007/03/19 PHP
如何利用http协议发布博客园博文评论
2015/08/03 PHP
php获取微信共享收货地址的方法
2017/12/21 PHP
分享8个Laravel模型时间戳使用技巧小结
2020/02/12 PHP
JavaScript的面向对象(一)
2006/11/09 Javascript
JavaScript 应用类库代码
2008/06/02 Javascript
jQuery Pagination Ajax分页插件(分页切换时无刷新与延迟)中文翻译版
2013/01/11 Javascript
jqplot通过ajax动态画折线图的方法及思路
2013/12/08 Javascript
Jquery each方法跳出循环,并获取返回值(实例讲解)
2013/12/12 Javascript
jQuery晃动层特效实现方法
2015/03/09 Javascript
Javascript中arguments和arguments.callee的区别浅析
2015/04/24 Javascript
js编写贪吃蛇的小游戏
2020/08/24 Javascript
jQuery实现的多滑动门,多选项卡效果代码
2016/03/28 Javascript
详解jQuery中的empty、remove和detach
2016/04/11 Javascript
又一款js时钟!transform实现时钟效果
2016/08/15 Javascript
AngularJS包括详解及示例代码
2016/08/17 Javascript
jQuery leonaScroll 1.1 自定义滚动条插件(推荐)
2016/09/17 Javascript
zTree节点文字过多的处理方法
2017/11/24 Javascript
js实现以最简单的方式将数组元素添加到对象中的方法
2017/12/20 Javascript
Vue header组件开发详解
2018/01/26 Javascript
微信小程序实现点击图片旋转180度并且弹出下拉列表
2018/11/27 Javascript
Vue使用路由钩子拦截器beforeEach和afterEach监听路由
2020/11/16 Javascript
[02:52]2014DOTA2西雅图国际邀请赛 CIS战队巡礼
2014/07/07 DOTA
python插入排序算法的实现代码
2013/11/21 Python
Python的Tornado框架实现异步非阻塞访问数据库的示例
2016/06/30 Python
微信跳一跳辅助python代码实现
2018/01/05 Python
Python 实现图片转字符画的示例(静态图片,gif皆可)
2020/11/05 Python
美国和加拿大计算机和电子产品购物网站:TigerDirect.com
2019/09/13 全球购物
纬创Java面试题笔试题
2014/10/02 面试题
酒店工作职员求职简历的自我评价
2013/10/23 职场文书
项目申请汇报材料
2014/08/16 职场文书
创先争优个人承诺书
2014/08/30 职场文书
法人单位适用的授权委托书
2014/09/19 职场文书
2014年酒店前台工作总结
2014/11/14 职场文书
读《方与圆》有感:交友方圆有度
2020/01/14 职场文书
关于python爬虫应用urllib库作用分析
2021/09/04 Python