Total Pageviews

5,570,872

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
--------------------------------------------------------------------------------

遇到了python版本导致的问题,学习了一下使用Miniconda来控制多版本的python环境

# Miniconda介绍

Miniconda是一个免费的conda最小安装程序。它是Anaconda的一个小型引导版本,仅包括conda、Python、它们都依赖的包以及少量其他有用的包(如pip、zlib和其他一些包)。
# 安装

安装地址 https://docs.conda.io/projects/miniconda/en/latest/ 选择需要的版本就可以 验证安装结果: “开始 → Miniconda3(64-bit)→ 右键点击Miniconda Prompt → 以管理员身份运行”,在Miniconda Prompt中输入 conda list ,可以查看已经安装的包名和版本号。若结果可以正常显示,则说明安装成功。 image
# Conda操作
# 创建新环境

conda create --name <env_name> <package_names>

比如我需要使用python3.10.6版本

conda create -n python310 python=3.10.6

# 切换环境

① Linux 或 macOS

source activate <env_name>

② Windows

activate <env_name>


# 查看环境
conda info --envs

结果

(base) C:\Users\Administrator>conda info --envs
# conda environments:
#
base                  *  C:\Users\Administrator\miniconda3
python310                C:\Users\Administrator\miniconda3\envs\python310

# 移除环境

conda remove -n python310--all

# 重命名环境

在conda中无法重命令,必须先克隆再删除

# 从python310 克隆到py310
conda create -n py310 --clone python310
# 切换到新环境
activate py310
# 删除原来的python310
conda remove -n python310 --all

# 注意

pip只是包管理器,无法对环境进行管理。因此如果想在指定环境中使用pip进行安装包,则需要先切换到指定环境中,再使用pip命令安装包。 pip无法更新python,因为pip并不将python视为包。 pip可以安装一些conda无法安装的包;conda也可以安装一些pip无法安装的包。因此当使用一种命令无法安装包时,可以尝试用另一种命令。

No comments:

Post a Comment