Total Pageviews

Wednesday 12 July 2017

利用conda构建envs,使windows下的python多版本共存

01 环境

操作系统: Windows 10 x64
Python: miniconda3 x64: https://conda.io/miniconda.html
(说明: 理论上无所谓使用基于python2或者python3的conda, 也无所谓使用miniconda还是anaconda, 更无所谓32或64位版本)
辅助: PyCharm 2017.1 x64

02 步骤

  1. 下载并安装miniconda,并检查miniconda的路径是否在系统PATH中
    可以使用echo %PATH%,也可以在 控制面板\所有控制面板项\系统-->高级系统设置-->高级-->环境变量中找到.

  1. 测试conda
    在cmd或者powershell中输入conda -V 或conda --version,测试conda正确安装
  2. 查看当前已有的env
    输入命令 conda env list 或者 conda info --envs
    我的输出结果如下:

    目前我已经建好了3个envs,路径也分别打印出来了
  3. 创建新的env
    以tensorflow为例,创建一个新的env
    conda create --name tensorflow python=3.5
    这是最简单的命令,创建名为tensorflow的env,指定python版本为3.5(python版本还可以设置为其他数值,如3.6,3.4甚至是2.7,尽管之前装的是miniconda3,创建env会自动下载对应版本的python,所以和安装的miniconda的版本没有关系)
    该命令还可以在最后添加包名,简单起见,我都是后续单独安装相应的包
  4. 激活env
    使用指令 activate即可,例如 activate tensorflow

    如图,我激活了名为tensor的env,在命令行前方会出现相应的前缀.如果是激活了 tensorflow的env,那么相应的前缀也应为tensorflow.
  5. 安装依赖的包
    激活env后,安装包可用pip或者conda指令.
    这里需要注意的是激活了哪一个env,安装的包会安装到相应的env中,而不是原本的python或miniconda的环境中(即打印出来的envs的root)
    还需要注意的是关闭cmd后,再次打开,似乎要重新激活env的,否则是对root进行操作的
    pip和conda是两个不同的包管理器,在env下可以共存,我一般优先使用pip安装包,如果找不到该包,会再用conda尝试一下,通常都能解决,如果还不行,就去官网下载相应的wheel.
    以安装tensorflow为例, pip install tensorflow即可,会自动检测当前环境,安装相应版本的tensorflow.

0x03 在PyCharm中使用新建的env环境

打开pycharm的 File--Settings

找到envs文件夹下相应env文件夹内的python.exe并添加即可

0x04 几句废话

本文主要还是写的conda的一个简单的流程,重点标注了几个可能遇到的坑
标题写的多版本python共存,文中并没有就此多展开,其实每创建一个env都可以是一个不同版本的python,多env的概念已经涵盖多版本python了
使用pycharm也可以用有界面的方式创建virtualenvs或者conda envs,不过个人感觉创建env,还是用命令行更方便。

参考资料

https://conda.io/docs/test-drive.html#managing-environments

No comments:

Post a Comment