包管理工具conda极简教程

包管理工具conda极简教程

conda的作用

Anaconda是目前非常流行的一个python包管理器,自带很多流行的python库,包括numpy,pandas等,当然还有conda。而Conda是一个开源的软件包管理系统和环境管理系统,用于安装多个版本的软件包及其依赖关系,并在它们之间轻松切换。

直接进入正题,本文通过几个最基本的命令,来介绍conda如何使用。

创建一个虚拟环境

首先假设你已经安装了anaconda
使用如下命令创建一个名为py2_pytorch的指定python版本的新环境。

[ansheng@*** ~]$conda create -n py2_pytorch python=2.7

查看所有环境

使用conda env list命令可以查看当前的所有python环境

[ansheng@*** ~]$conda env list
# conda environments:
#
base                  *  /data/ansheng/anaconda2
py2_pytorch              /data/ansheng/anaconda2/envs/py2_pytorch

可以看到,当前有两个环境,一个是安装anaconda后自带的base环境,一个是我们刚刚新建的python环境py2_pytorch。

删除一个虚拟环境

[ansheng@*** ~]$conda env remove -n py2_pytorch 

激活or关闭指定环境

使用source activate 环境名 激活指定环境

[ansheng@*** ~]$source activate py2_pytorch
(py2_pytorch) [ansheng@*** ~]$

使用source deactivate or source deactivate 环境名 关闭当前环境

(py2_pytorch) [ansheng@ocr-gpu-12-10 ~]$ source deactivate py2_pytorch
(base) [ansheng@ocr-gpu-12-10 ~]$

使用后一定要记得关闭

在指定环境中安装包

假设我们想在新建的python环境py2_pytorch中安装cpu版本的pytorch,我们来模拟这个过程

首先切换到想要安装python包的环境中
使用conda install + python包名称 的方式安装指定的包及相关的依赖包

[ansheng@*** ~]$source activate py2_pytorch
(py2_pytorch) [ansheng@*** ~]$conda install pytorch

耐心的等待后cpu版本的pytorch就装好了,当然如果你想装对应CUDA9.0的GPU版本的pytorch,使用如下命令,不过这已经是题外话了。

(py2_pytorch) [ansheng@*** ~]$conda install pytorch-nightly cudatoolkit=9.0 -c pytorch

一键化的conda install命令帮忙处理了所有依赖关系,推荐仅在一个新的空环境中使用conda install这样的命令来快速的安装一个如tensorflow或pytorch这样具有众多依赖的python库。

个人还是比较推荐使用pip install命令来安装python包,使用方法没有区别,例如:

(py2_pytorch) [ansheng@*** ~]$pip install numpy
(py2_pytorch) [ansheng@*** ~]$pip install pandas

演示:尝试切换环境并调用python包

下面我们来进行一个简单的实践演示,直观感受下conda的正确打开方式。

首先我们先退出刚刚打开的py2_pytorch环境

(py2_pytorch) [ansheng@ocr-gpu-12-10 ~]$ source deactivate
(base) [ansheng@ocr-gpu-12-10 ~]$

base环境是我平时最常用的python环境,这里面安装了tensorflow,因此在base环境中我可以进行如下操作:

(base) [ansheng@*** ~]$ python
Python 2.7.15 |Anaconda, Inc.| (default, May  1 2018, 23:32:55) 
[GCC 7.2.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy
>>> import tensorflow
>>> import torch
Traceback (most recent call last):File "<stdin>", line 1, in <module>
ImportError: No module named torch
>>> 

可以看到,在base环境下,我们运行python后,可以import一些常规库如numpy,也可以成功import tensorflow。但是我们没有安装pytorch,因此我们import torch失败。

这时,当我们想安装一个pytorch,但是又担心pytorch和tensorflow这两个依赖都比较多的库产生冲突时,conda就派上用场了。

正如我们之前做的那样,我们可以新建一个和当前python环境完成隔离的新的环境,在这个环境中来维护pytorch所需的所有依赖。因此,当我想要使用pytorch时,我仅仅需要激活py2_pytorch环境即可,例如:

[ansheng@*** ~]$source activate py2_pytorch
(py2_pytorch) [ansheng@*** ~]$
(py2_pytorch) [ansheng@*** ~]$ python
Python 2.7.15 |Anaconda, Inc.| (default, May  1 2018, 23:32:55) 
[GCC 7.2.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy
>>> import torch
>>> import tensorflow
Traceback (most recent call last):File "<stdin>", line 1, in <module>
ImportError: No module named tensorflow
>>> quit()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/499482.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PID控制器开发笔记之九:基于前馈补偿的PID控制器的实现

对于一般的时滞系统来说&#xff0c;设定值的变动会产生较大的滞后才能反映在被控变量上&#xff0c;从而产生合理的调节。而前馈控制系统是根据扰动或给定值的变化按补偿原理来工作的控制系统&#xff0c;其特点是当扰动产生后&#xff0c;被控变量还未变化以前&#xff0c;根…

借助百度识图爬取数据集

背景 一个能够实际应用的深度学习模型&#xff0c;背后的数据集往往都花费了大量的人力财力&#xff0c;通过聘用标注团队对真实场景数据进行标注生产出来&#xff0c;大多数情况不太可能使用网络来源的图片。但在项目初期的demo阶段&#xff0c;或者某些特定的场合下&#xf…

通过printf从目标板到调试器的输出

最近在SEGGER的博客上看到Johannes Lask写的一篇关于在调试时使用printf函数从目标MCU输出信息到调试器的文章&#xff0c;自我感觉很有启发&#xff0c;特此翻译此文并推荐给各位同仁。当然限于个人水平&#xff0c;有不当之处恳请指正。原文网址&#xff1a;https://blog.seg…

小心使用tf.image.resize_images,填坑经验分享给你

上上周&#xff0c;我在一个项目上线前对模型进行测试时出现了问题&#xff0c;这个问题困扰了我近两周&#xff0c;终于找到了问题根源&#xff0c;做个简短总结分享给你&#xff0c;希望对大家有帮助。 问题描述&#xff1a; 线上线下测试结果不一致&#xff0c;且差异很大…

PID控制器开发笔记之十:步进式PID控制器的实现

对于一般的PID控制系统来说&#xff0c;当设定值发生较大的突变时&#xff0c;很容易产生超调而使系统不稳定。为了解决这种阶跃变化造成的不利影响&#xff0c;人们发明了步进式PID控制算法。 1、步进式PID的基本思想 所谓步进式PID算法&#xff0c;实际就是在设定值发生阶跃…

AutoML 与 Bayesian Optimization 概述

1. AutoML 概述 AutoML是指对于一个超参数优化任务&#xff08;比如规定计算资源内&#xff0c;调整网络结构找到准确率最高的网络&#xff09;&#xff0c;尽量减少人为干预&#xff0c;使用某种学习机制&#xff0c;来调节这些超参数&#xff0c;使得目标问题达到最优。 这…

使用Eclipse进行Makefile项目

最近在MCU on Eclipse网站上看到Erich Styger所写的一篇有关在Eclipse中使用Makefile创建项目的文章&#xff0c;文章讲解清晰明了非常不错&#xff0c;所以呢没人将其翻译过来供各位同仁参考。当然限于个人水平&#xff0c;有不当之处恳请指正。原文网址&#xff1a;https://m…

Git commit 常用表情快速查询

git commit 的时候&#xff0c;添加表情符号可以更好的表明本次提交的性质&#xff0c;也更有趣。 常用表情符号如下&#xff1a; emoji emoji代码 commit说明 &#x1f3a8; (调色板) :art: 改进代码结构/代码格式 ⚡️ (闪电) :zap: 提升性能 &#x1f40e; (赛马)…

C语言学习及应用笔记之一:C运算符优先级及使用问题

C语言中的运算符绝对是C语言学习和使用的一个难点&#xff0c;因为在2011版的标准中&#xff0c;C语言的运算符的数量超过40个&#xff0c;甚至比关键字的数量还要多。这些运算符有单目运算符、双目运算符以及三目运算符&#xff0c;又涉及到左结合和右结合的问题&#xff0c;真…

Docker用法整理

Docker教程推荐 两个不错的参考资料&#xff1a; https://yeasy.gitbooks.io/docker_practice/content/introduction/ https://www.cnblogs.com/bethal/p/5942369.html 镜像&#xff1a; 查看镜像 docker images ls 删除镜像 docker image rm <image id> 拉取镜像 …

使用FreeRTOS进行性能和运行时分析

在MCU on Eclipse网站上看到Erich Styger在2月25日发的博文&#xff0c;一篇关于使用FreeRTOS进行性能和运行分析的文章&#xff0c;本人觉得很有启发&#xff0c;特将其翻译过来以备参考。当然限于个人水平&#xff0c;有描述不当之处恳请指正。原文网址&#xff1a;https://m…

生成微信公众号对应二维码的两种简单方法

方法1 在浏览器中打开下面的链接 https://open.weixin.qq.com/qr/code?usernameName 其中Name替换为对应公众号的微信号 例如&#xff0c;我们打算生成公众号 AI算法联盟 的二维码 只需首先关注这个公众号 在其详细信息中&#xff0c;查找到微信号信息&#xff1a;AIReport…

在Amazon FreeRTOS V10中使用运行时统计信息

在MCU on Eclipse网站上看到Erich Styger在8月2日发的博文&#xff0c;一篇关于在Amazon FreeRTOS V10中使用运行时统计信息的文章&#xff0c;本人觉得很有启发&#xff0c;特将其翻译过来以备参考。原文网址&#xff1a;https://mcuoneclipse.com/2018/08/02/tutorial-using-…

github无法加载图片的解决办法

最近发现我的github上面项目README里面的图片全裂了&#xff0c;一直以为是github最近服务器不稳定。今天通过简单的查询&#xff0c;发现原来这个问题可以解决&#xff0c;但是不能永久有效&#xff0c;之后还会用到&#xff0c;因此记录在这里&#xff0c; 也分享给大家。 解…

leetcode 1.两数之和

题目 链接&#xff1a;https://leetcode-cn.com/problems/two-sum 给定一个整数数组 nums 和一个目标值 target&#xff0c;请你在该数组中找出和为目标值的那 两个 整数&#xff0c;并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是&#xff0c;你不能重复…

C语言学习及应用笔记之二:C语言static关键字及其使用

C语言有很多关键字&#xff0c;大多关键字使用起来是很明确的&#xff0c;但有一些关键字却要相对复杂一些。我们这里要说明的static关键字就是如此&#xff0c;它的功能很强大&#xff0c;相应的使用也就更复杂。 一般来说static关键字的常见用法有三种&#xff1a;一是用作局…

μCUnit,微控制器的单元测试框架

在MCU on Eclipse网站上看到Erich Styger在8月26日发布的博文&#xff0c;一篇关于微控制器单元测试的文章&#xff0c;有很高的参考价值&#xff0c;特将其翻译过来以备学习。原文网址&#xff1a;https://mcuoneclipse.com/2018/08/26/tutorial-%CE%BCcunit-a-unit-test-fram…

leetcode No.15-16 三数之和相关问题

leetcode 15. 三数之和 题目 链接&#xff1a;https://leetcode-cn.com/problems/3sum 给定一个包含 n 个整数的数组 nums&#xff0c;判断 nums 中是否存在三个元素 a&#xff0c;b&#xff0c;c &#xff0c;使得 a b c 0 &#xff1f;找出所有满足条件且不重复的三元组…

PID控制器开发笔记之十一:专家PID控制器的实现

前面我们讨论了经典的数字PID控制算法及其常见的改进与补偿算法&#xff0c;基本已经覆盖了无模型和简单模型PID控制经典算法的大部。再接下来的我们将讨论智能PID控制&#xff0c;智能PID控制不同于常规意义下的智能控制&#xff0c;是智能算法与PID控制算法的结合&#xff0c…

leetcode No.123 买卖股票的最佳时机 III

题目 链接&#xff1a;https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-iii 给定一个数组&#xff0c;它的第 i 个元素是一支给定的股票在第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你最多可以完成 两笔 交易。 注意: 你不能同时参与多…