如何安装并使用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 使用requests模块发送GET和POST请求的实现代码
Sep 21 Python
详解python3中socket套接字的编码问题解决
Jul 01 Python
Python标准库sched模块使用指南
Jul 06 Python
Python基于matplotlib绘制栈式直方图的方法示例
Aug 09 Python
numpy使用技巧之数组过滤实例代码
Feb 03 Python
python中的插值 scipy-interp的实现代码
Jul 23 Python
pycharm打开命令行或Terminal的方法
Jan 16 Python
pytorch ImageFolder的覆写实例
Feb 20 Python
浅析Python __name__ 是什么
Jul 07 Python
Python读写锁实现实现代码解析
Nov 28 Python
python解包概念及实例
Feb 17 Python
Python入门之基础语法详解
May 11 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
php5中date()得出的时间为什么不是当前时间的解决方法
2008/06/30 PHP
全局记录程序片段的运行时间 正确找到程序逻辑耗时多的断点
2011/01/06 PHP
深入Apache与Nginx的优缺点比较详解
2013/06/17 PHP
PHP使用finfo_file()函数检测上传图片类型的实现方法
2017/04/18 PHP
php数组指针函数功能及用法示例
2020/02/11 PHP
通过身份证号得到出生日期和性别的js代码
2009/11/23 Javascript
有关JavaScript的10个怪癖和秘密分享
2011/08/28 Javascript
JavaScript 用cloneNode方法克隆节点的代码
2012/10/15 Javascript
JS中表单的使用小结
2014/01/11 Javascript
基于javascript实现tab选项卡切换特效调试笔记
2016/03/30 Javascript
AngularJS 指令的交互详解及实例代码
2016/09/14 Javascript
vuejs事件中心管理组件间的通信详解
2017/08/09 Javascript
JS实现静态页面搜索并高亮显示功能完整示例
2017/09/19 Javascript
javascript中UMD规范的代码推演
2018/08/29 Javascript
javascript实现超好看的3D烟花特效
2020/01/01 Javascript
vue 检测用户上传图片宽高的方法
2020/02/06 Javascript
vue中v-for循环选中点击的元素并对该元素添加样式操作
2020/07/17 Javascript
vue中重定向redirect:‘/index‘,不显示问题、跳转出错的完美解决
2020/09/28 Javascript
微信小程序实现滚动Tab选项卡
2020/11/16 Javascript
django 按时间范围查询数据库实例代码
2018/02/11 Python
python实现京东秒杀功能
2018/07/30 Python
Django密码系统实现过程详解
2019/07/19 Python
Django之PopUp的具体实现方法
2019/08/31 Python
pytorch模型预测结果与ndarray互转方式
2020/01/15 Python
教育学专业毕业生的自我鉴定
2013/11/26 职场文书
企业精细化管理实施方案
2014/03/23 职场文书
年度评优评先方案
2014/06/03 职场文书
爱牙日活动总结
2014/08/29 职场文书
企业贷款委托书格式
2014/09/12 职场文书
教师个人学习总结
2015/02/11 职场文书
教师节老师寄语
2015/05/28 职场文书
捐款仪式主持词
2015/07/04 职场文书
创业计划书之旅游网站
2019/09/06 职场文书
python实现A*寻路算法
2021/06/13 Python
常用的MongoDB查询语句的示例代码
2021/07/25 MongoDB
Python编程编写完善的命令行工具
2021/09/15 Python