可能自己常常会遇到一个这样的问题,自己服务器安装的是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. 基于Vue + webpack + Vue-cli 实现分环境打包项目

    需求由来:我公司项目上线发布至服务器分为三个环境分别为测试环境.预发布环境.生产环境:前期做法是项目通过脚步打包时由脚步把域名和后缀名之类的全部替换成要发布的环境所需要的,因为我公司的项目比较大由许许 ...

  2. 小程序util工具

    import wafer from '../lib/wafer2-client-sdk' import tip from './tip' // 时间格式化 const formatTime = tim ...

  3. @NotNull, @NotEmpty和@NotBlank之间的区别是什么?

    首先是简要描述: [java] view plain copy@NotNull://CharSequence, Collection, Map 和 Array 对象不能是 null, 但可以是空集(s ...

  4. Theano笔记

    scan函数 theano.scan(fn, sequences=None, outputs_info=None,non_sequences=None, n_steps=None, truncate_ ...

  5. H5 PWA技术以及小demo

    H5 PWA技术 1.原生app优缺点 a.体验好.下载到手机上入口方便 b.开发成本高(ios和安卓) c.软件上线需要审核 d.版本更新需要将新版本上传到不同的应用商店 e.使用前需下载 2.we ...

  6. zookeeper:shell操作以及可视化工具的使用

    1.zkcli.sh基本使用 1-1 查看节点 进入zk的bin目录下执行./zkCli.sh ls命令可以查看节点,/zookeeper/quota是默认的节点 1-2新增节点 create key ...

  7. c# 十进制转二、八、十六进制

    一.十进制转二.八.十.十六进制字符串 Convert.ToString(int decNum,int toBase); decNum为十进制字符串, toBase可以为2.8.10.16 如果要转换 ...

  8. es6-priomise

    Promise是异步编程的一种解决方案,它有三种状态,分别是 pending-进行中 resolved-已完成 rejected-已失败 状态一旦改变,就无法再次改变状态,这也是它名字promise- ...

  9. PLY文件格式

    一.PLY简介 PLY文件格式是Stanford大学开发的一套三维mesh模型数据格式,图形学领域内很多著名的模型数据,比如Stanford的三维扫描数据库(其中包括很多文章中会见到的Happy Bu ...

  10. 2.6 C++通过引用来传递和返回类对象

    参考:http://www.weixueyuan.net/view/6338.html 总结: C++语言中,由类声明的对象,和其它类型声明的变量一样,同样可以通过传值.引用和指针的方式作为函数的参数 ...