目录
目录
1.虚拟环境的介绍
Python 应用经常需要使用一些包第三方包或者模块,有时需要依赖特定的包或者库的版本,所以不能有一个能适应所有 Python 应用的软件环境,很多时候不同的 Python 应用所依赖的版本是冲突的,满足了其中一个,另一个则无法运行,解决这一问题的方法是虚拟环境。虚拟环境是一个包含了特定 Python 解析器以及一些软件包的自包含目录,不同的应用程序可以使用不同的虚拟环境,从而解决了依赖冲突问题,而且虚拟环境中只需要安装应用相关的包或者模块,可以给部署提供便利。
虚拟环境主要是利用了操作系统中环境变量以及进程间环境隔离的特性。
Python 处理虚拟环境的包有好几种,conda用的比较多。
2.pip、Conda、virtualenv区别
pip 是最常用的包管理工具,通过 pip install <packagename>
命令格式来安装软件包,使用的是 pypi 软件包源。安装python自带pip,或者通过 yum install python-pip
安装。
conda 多用作科学计算领域的包管理工具,功能丰富且强大,使用的软件包源是 Anaconda repository 和 Anaconda Cloud,conda 不仅支持 Python 软件包,还可以安装 C、C++ 、R 以及其他语言的二定制软件包。除了软件包管理外,还能提供相互隔离的软件环境。安装 Anaconda 自带 conda。
virtualenv 是一个虚拟环境管理器,作为非数据科学领域的开发者来说是很实用的。它可以让你每个项目甚至每个脚本配置一个自定义的Python解释器环境,这最大的好处是可以不污染开发环境。可以通过 pip install virtualenv
安装。
如果说venv是虚拟环境管理器,pip是包管理器,那么conda则是两者的结合。
conda虚拟环境是独立于操作系统解释器环境的,即无论操作系统解释器什么版本(哪怕2.7),我也可以指定虚拟环境python版本为3.8,而venv是依赖主环境的。
在Anaconda中,无论在哪个环境下,只要通过conda install xxx的方式安装的库都会放在Anaconda的pkgs目录下,如:E:\python\anaconda\pkgs\numpy-1.18.1-py36h48dd78f_1。这样的好处就是,当在某个环境下已经下载好了某个库,再在另一个环境中还需要这个库时,就可以直接从pkgs目录下将该库复制至新环境(将这个库的Lib\site-packages中的文件复制到当前新环境下Lib中的第三方库中,也即Lib\site-packages中,这个过程相当于通过pip install xxx进行了安装)而不用重复下载。
3.pip
1.安装python
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt-get update
sudo apt-get install python3.62.删除python
sudo apt-get remove --auto-remove python3.4pip install xxx -i https://pypi.tuna.tsinghua.edu.cn/simple some-package
3.清空回收站命令:
sudo rm -rf ~/.local/share/Trash/*
4.conda
4.1验证conda是否安装
验证conda已被安装,打开“Anaconda Prompt”,conda --version
4.2清理conda
清理 conda
conda clean -p //删除从不使用的包
conda clean -t //删除tar包
conda clean -a //删除索引缓存,锁定文件,未使用的缓存包和包
4.3虚拟环境管理
1. 显示所有的虚拟环境:
conda env list
或者 conda info -e
(注意目录:base 在基目录,其它后天的环境在 envs 内[C:\anaconda3\envs])
2. 创建一个名为 z 环境,指定Python版本是3.8或2.7
conda create --name z python=3.8
#conda create --name z python=2.7
conda create --name z python=3.7.1 --channel https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/3. 激活名为 z 的环境
conda activate z # windows
source activate z # linux/mac
4. 切换环境
conda activate z
5. 退出环境
deactivate #windows
source deactivate #linux
6. 删除一个名为 z 的环境
conda remove --name z --all或者conda remove -n name --all
7. 克隆oldname环境为newname环境
conda create --name newname --clone oldnameconda update -n base -c defaults conda
conda clean --packages && conda clean --all && conda update --al
4.4 包管理
conda 的包管理功能是对pip的一种补充,如果当前已经激活了某个Python环境,那么就可以在当前环境开始安装第三方包。
1.查看当前环境下已安装的package
conda list
2.查找名为 numpy 的信息 package 的信息
conda search numpy
3. 安装名为 numpy 的包
conda install numpy
conda install -n name [package]
(conda install numpy 会自动安装 mkl(intel 加速科学计算的包),而pip install numpy 则不会)4. 更新numpy 包
conda update numpy
5. 卸载numpy 包conda uninstall numpy
6.在名为 zlltest 环境下安装 numpy 包
# -n指定环境 --channel指定源地址
conda install -n zlltest numpy7. 使用地址 https://conda.anaconda.org/anaconda 来安装tensorflow
conda install --channel https://conda.anaconda.org/anaconda tensorflow=1.8.0对于那些用 pip 无法安装成功的模块你都可以尝试用 conda 来安装,如果用 conda 找不到相应的包,当然你继续选择 pip 来安装包也是没问题的。
8.升级
conda update conda # 更新 conda
conda update anaconda # 更新 anaconda
conda update anaconda-navigator #update最新版本的anaconda-navigator
conda update python # 更新 python
5. virtualenv的使用
virtualenv是一个创建隔绝的python环境的工具,virtualenv创建一个包含所有必要的可执行文件的文件夹,用来使用python工程所需的包。
1. 安装:pip install virtualenv
2. 创建虚拟环境,在工程目录下,例如:pro_name,切换到 pro_name 下:
virtualenv venv 命令创建虚拟环境,venv 是虚拟环境名称,可以修改。默认是--no-site-packages
--no-site-packages: 令隔离环境不能访问系统全局的site-packages目录
--system-site-packages : 令隔离环境可以访问系统全局的site-packages目录
virtualenv --system-site-packages -p /usr/bin/python3.6 venv36 #依赖于主环境
创建一个独立的python3.6虚拟环境: virtualenv -p /usr/bin/python3.6 venvp363. 进入虚拟环境
linux:
source venv/bin/activate
source venvp36/bin/activate
windows:
venv/Scripts/activate
在venv环境下,用pip安装的包都被安装到venv这个环境下,系统Python环境不受任何影响。也就是说,venv环境是专门针对pro_name这个目录创建的4. 退出、删除
退出当前的venv环境,使用命令:deactivate
如果需要删除我们创建的虚拟环境,只需要退出,并删除创建的文件夹即可查看python指向:
ls -l /usr/bin | grep python
rm /usr/bin/pythonpython3指向python3.6(定义一个软连接)
ln -s /usr/bin/python3.6 /usr/bin/python3