【Linux】conda新建环境 pip install原理

conda环境原理及pip install原理

  • conda
    • 新建环境
    • 环境位置
    • 环境复制
  • pip
    • linux原生pip
    • jetson nano分析
    • conda环境

conda

新建环境

conda create -n myenv python=3.6

当运行上面的语句并确认后

  • 将会开始下载数据包至pkgs文件夹下,一个包对应生成一个文件,一个文件夹以及更改一个文件。
    1. 文件pkg_name.condapkg_name.tar.bz2文件,pkg_name是包名,例如可以为python-3.6.13-hdb3f193_0,一般使用官方源为后缀为.conda,国内源后缀.tar.bz2
    2. 解压安装后的pkg_name文件夹
    3. 更改url.txt 在其后面追加一行 内容为下载该包的网址
  • 全部包下载完成后,将会在envs文件夹下新建一个与环境名相同的文件夹,文件夹内即是环境所需内容,另外在envs同级路径下的environments.txt追加一行,内容环境的绝对路径,例如为/home/intleo/.conda/envs/myenv

环境位置

另外pkgsenvs以及environments.txt(可无)在同一文件夹下,该文件夹位置分两种情况

  1. anconda安装在公共目录/usr/local/anaconda3时文件夹为~/.conda文件夹
  2. anconda安装在用户目录下,例如~/soft/anaconda3,文件夹位置就为 ~/soft/anaconda3

环境复制

相同软件系统下具有相同cuda,可以直接复制envs下的环境文件夹至其他机器或同机器下的其它用户,其他用户可以直接使用,例如解释器选择~/.conda/envs/myenvbin/python即可直接使用
以上本人在同一机器下的不同用户上复制可用torch等
也可使用 conda pack进行打包,可参考链接,但当时由于依赖文件外的mmdetection未能成功

PS,conda 新建环境和conda install前会先搜索pkgs或者url.txt,之前下载过的包会直接加载用于新环境的安装

pip

linux原生pip

pip其实是python的一个模块,调用pip时就会调用python来执行,以原生环境为例(非conda),Linux系自带的python是2.7版本,可执行python查看
在这里插入图片描述
一般python是软连接到python2.7了,可执行ls -l /usr/bin | grep python查看所有已安装python版本,比如我的主机就还安装有python3.5
【Linux】conda新建环境 pip install原理_第1张图片
每个python版本对应一个pip,我们来查看pip的内容可以发现其就是一个脚本文件,和其他脚本文件在第一行指定好解释器,如下图指定的是/usr/bin/python,即使用这个原生pip安装的包将可被/usr/bin/python调用,并且自己安装的包将会存在于/usr/lib/python2.7/site-packages
【Linux】conda新建环境 pip install原理_第2张图片
那么我们如果想指定执行某个python版本的pip并安装包到这个python下面该如何操作呢?可直接python3.X -m pip install XXX3.X是代表版本号,例如执行python3.5 -m pip show pip,若没有这个包一般是因为还未安装pip3,可先执行sudo apt install python3-pip安装
【Linux】conda新建环境 pip install原理_第3张图片
安装完成后,可执行pip3 show pip查看安装位置,可以看到安装在了python3的包下面,这个目录下面的
【Linux】conda新建环境 pip install原理_第4张图片
我们当前的环境是只有一个python3版本python3.5,使用pip3安装东西必然会安装至python3.5下的site-packages里,若有多个python3版本,我们可以执行python3.X -m pip 来调用,由于安装的pip版本较低,我们可以先更新下python3.5 -m pip install --upgrade pip,这里由于python3.5版本原因,部分语法未适配最新版的pip,可尝试升级python版本

jetson nano分析

由于亚博自带的镜像中,python3版本为3.6.9,在使用上还是有很多局限的,故本节将升级python版本,这里简单介绍下python包管理机制,板子自带python3.6.9,由于大多数系统都会带一个低版本(9.0.1)的pip,然后每个python版本如果安装了pip都会对应一个自己版本的pip module,例如执行pip show pip或者python3 -m pip show pip可以看到自带的python 3.6.9对应的pip就存放在 /home/nano/.local/lib/python3.6/site-packages中,即python3.6的包下
【Linux】conda新建环境 pip install原理_第5张图片
执行sudo apt-get install python3.8,即可安装python3.8,但此时你执行的pip3还是python3.6的,可执行pip show pip查看.
系统自带了一个pip(9.0.1),可执行python3.8 -m pip show pip查看,pip位于/usr/lib/python3/dist-packages
【Linux】conda新建环境 pip install原理_第6张图片
因此需要为python3.8安装pip模块,执行python3.8 -m pip install --upgrade pip即可安装,python3.8 -m pip show pip显示的就是位于python3.8下
【Linux】conda新建环境 pip install原理_第7张图片
且此时直接执行pip show pip也是python3.8下的,因为安装完成后,已将pip3.8安装到了本地bin中,且将默认的pip换成了pip3.8版本的
【Linux】conda新建环境 pip install原理_第8张图片

conda环境

若conda新建的环境为python3.6的,那么pip3下载的包将会放置在envs/myenv/lib/python3.6/site-packages

你可能感兴趣的:(Linux,深度学习,anaconda,pip)