可能自己常常会遇到一个这样的问题,自己服务器安装的是python2,但是现在有的代码是基于python3的啊

怎么办?自己将代码转换成python2的呗,是的,我曾经就这样做过,但是真的是很鸡肋

更有一种情况,有的代码基于的pytorch的版本比较老怎么办?卸载了重装呗,很多依赖依旧是卸载重装,是的我曾经就这样搞过

但是有这么多代码要跑,一直用这样一种操作方式也不是办法呀,比如我今天跑的代码依赖比较老的版本,明天跑的代码依赖比较新的版本。所以要一直这样切换?

之前我们有三台服务器,不同的服务器有不同的配置,比如有的服务器是python2的,有的服务器是python3的,这样操作还是比较容易一些,但是数据也要triple啊!强迫症根本就受不了

于是,我发现可以用conda来创建虚拟环境,并且重新生成一个你想要的python环境,和新的一样

在创建conda环境之前,我之前安装镜像的时候都是用proxychains + 命令,可以走代理,但是,我最近发现使用清华的源貌似是比用proxychains要来的更快,添加清华源的命令是(参考链接

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes  

添加了清华的源之后,下载包飞快,p大的小伙伴表示很服气

创建虚拟环境的命令是

conda create -n spherecnn python=3.6

上述命令创建一个名称为spherecnn的python版本为3.6的虚拟环境

用以下命令可以列出已经创建出来的虚拟环境

conda env list

conda中存在的虚拟环境如下图所示

然后

source activate spherecnn

即可激活自己创建的虚拟环境

这个时候终端的前面会显示你自己创建的虚拟环境

运行

source deactivate spherecnn

退出虚拟环境

进入到虚拟环境之后,试着输入python,发现确实是3.6

这个时候你用conda命令安装的所有包,都是安装在虚拟环境里面,非常爽,需要什么版本的就安装什么版本的

而退出虚拟环境之后,输入python,看一下python的环境是多少

可以看出来,是python2的环境

虚拟环境python这个执行器的路径在哪里呢?

~/anaconda2/envs路径包含了所有的你创建的虚拟环境,spherecnn的python执行器在~/anaconda2/envs/spherecnn/bin/pyhon路径下,pycharm在remote进行调用远程的编译器的时候需要知道这个路径。

不仅仅是pycharm了,jupyter notebook也可以设置虚拟环境,但是首先需要安装

conda install nb_conda

然后安装ipykernel并且在ipykernel中添加我们创建的虚拟环境

conda install ipykernel
python3 -m ipykernel install --user --name=spherecnn

然后启动jupyter的时候就可以在kernel中选择自己所需要的kernel版本了

虚拟环境的出现,大大提高了生产效率,感谢conda

conda创建虚拟环境的更多相关文章

  1. Anaconda的使用和包的更新;conda 创建虚拟环境

    安装: 官网下好后,直接 sh * 会提示安装路径,选择No的话重新填入安装的路径就可以了: 添加到环境变量: echo 'export PATH="~/anaconda2/bin/$PAT ...

  2. 使用conda创建虚拟环境

    conda创建python虚拟环境 前言 conda常用的命令: conda list 查看安装了哪些包. conda env list 或 conda info -e 查看当前存在哪些虚拟环境 co ...

  3. Anacodna之conda与 virtualenv对比使用教程,创建虚拟环境

    conda创建虚拟环境 1.查看包 conda list查看安装了哪些包 conda env list查看有哪些虚拟环境 conda -V查看conda的版本 2.创建虚拟环境,命名为myflaska ...

  4. Anaconda+用conda创建python虚拟环境

    Anaconda+用conda创建python虚拟环境 Anaconda与conda区别 conda可以理解为一个工具,也是一个可执行命令,其核心功能是包管理与环境管理.包管理与pip的使用类似,环境 ...

  5. conda创建py27虚拟环境安装theano(anaconda3)

    现在python3已经成为主流的python环境,大部分的package都兼容python3,仍然有一小部分,或者说是某一领域的package需要使用python2.本人现在主要在利用python做机 ...

  6. Anaconda用conda创建python虚拟环境

    Anaconda用conda创建python虚拟环境 一.简介 conda可以理解为一个工具,也是一个可执行命令,其核心功能是包管理与环境管理.包管理与pip的使用类似,环境管理则允许用户方便地安装不 ...

  7. conda创建和使用python的虚拟环境

    https://uoa-eresearch.github.io/eresearch-cookbook/recipe/2014/11/20/conda/ 当我们使用服务器的时候,会存在多个用户,并且可能 ...

  8. Conda 创建和删除虚拟环境

    1.检验当前conda的版本 conda -V C:\Users>conda -V conda 4.10.1 2.conda 常用的命令 查看已有的虚拟环境 C:\Users>conda ...

  9. conda创建/移除虚拟环境

    conda创建python虚拟环境 前言 conda常用的命令: conda list 查看安装了哪些包. conda env list 或 conda info -e 查看当前存在哪些虚拟环境 co ...

随机推荐

  1. Const的使用

    const意味为readonly,即只读,const可被施加于任何作用域内的对象,函数参数,函数返回类型,成员函数本体 使用: const修饰变量时本质是 const在谁后面谁就不可修改,const在 ...

  2. 前端基础之html常用标签

    前言: 1.在B-S模式下,server服务端和客户端之间 使用http协议(规定 客户端应该怎么请求服务端,服务端应该怎么响应)通信: 2.传输过程 浏览器 向服务端发起 post/get请求 服务 ...

  3. 安天透过北美DDoS事件解读IoT设备安全——Mirai的主要感染对象是linux物联网设备,包括:路由器、网络摄像头、DVR设备,入侵主要通过telnet端口进行流行密码档暴力破解,或默认密码登陆,下载DDoS功能的bot,运行控制物联网设备

    安天透过北美DDoS事件解读IoT设备安全 安天安全研究与应急处理中心(安天CERT)在北京时间10月22日下午启动高等级分析流程,针对美国东海岸DNS服务商Dyn遭遇DDoS攻击事件进行了跟进分析. ...

  4. 使用MongoDB数据库(1)(三十五)

    MongoDB简介 MongoDB是一个基于分布式文件存储的数据库,它是一个介于关系数据库和非关系数据库之间的产品,其主要目标是在键/值存储方式(提供了高性能和高度伸缩性)和传统的RDBMS系统(具有 ...

  5. Vue + Element UI 实现权限管理系统(工具模块封装)

    封装 axios 模块 封装背景 使用axios发起一个请求是比较简单的事情,但是axios没有进行封装复用,项目越来越大,会引起越来越多的代码冗余,让代码变得越来越难维护.所以我们在这里先对 axi ...

  6. UVa 10795 - A Different Task 对称, 中间状态, 数位DP 难度: 3

    题目 https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&a ...

  7. bzoj1294

    题解: 首先发现假如一个豆豆被多边形围住了,那么从这个豆豆引出一条射线 会有奇数个焦点 然后我们从每个豆豆引出一条射线 然后状压dfs 代码: #include<bits/stdc++.h> ...

  8. mybatis 无法自动补全,没有获得dtd文件

    由于网络原因,eclipse无法下载到http://mybatis.org/dtd/mybatis-3-mapper.dtd,导致eclipse的编辑器无法自动补全标签. 解决办法:将dtd文件下载到 ...

  9. 2.15 C++常量指针this

    参考: http://www.weixueyuan.net/view/6346.html 总结: 在每一个成员函数中都包含一个常量指针,我们称其为this指针,该指针指向调用本函数的对象,其值为该对象 ...

  10. Java线程的三种方式

    创建线程有三种方式: 1.继承Thread类 2.实现Runnable接口 3.使用Callable和Future创建线程 三种方式详解如下: ---------------------------- ...