分享

UC头条:Python 包管理(pip、conda)基本使用指南

 cnzrp 2023-10-08 发布于山西

Python包管理

概述

介绍

Python有丰富的开源的第三方库和包,可以帮助完成各种任务,扩展Python的功能,例如NumPy用于科学计算,Pandas用于数据处理,Matplotlib用于绘图等。在开始编写Pytlhon程序之前,可能需要安装一些常用的Python库,以便在编程过程中能够轻松地使用它们。

为了方便地管理第三方库和包,需要安装一个Python包管理工具,例如pip、conda等。这些工具可以帮助安装、升级和删除Python包,能够轻松地管理Python的依赖关系。

Anaconda、conda、pip、virtualenv的区别

Anaconda

Anaconda是一个包含180+的科学包及其依赖项的发行版本。其包含的科学包包括:conda,numpy,scipy,ipythonnotebook等。

condaconda是包及其依赖项和环境的管理工具。适用语言:Python,R,Ruby,Lua,Scala,Java,JavaScript,C/C++,FORTRAN适用平台:Windows,macOS,Linux用途:

快速安装、运行和升级包及其依赖项。

在计算机中便捷地创建、保存、加载和切换环境。

如果需要的包要求不同版本的Python,无需切换到不同的环境,因为conda同样是一个环境管理器。仅需要几条命令,就可以创建一个完全独立的环境来运行不同的Python版本,同时可以继续在常规的环境中使用常用的Python版本。——

conda为Python项目而创造,但可适用于上述的多种语言。

conda包和环境管理器包含于Anaconda的所有版本当中。

pippip是用于安装和管理软件包的包管理器。pip适用语言:PythonPython中默认安装的版本:

Python2.7.9及后续版本:默认安装,命令为pip

Python3.4及后续版本:默认安装,命令为pip、pip3

pip名称的由来:pip采用的是递归缩写进行命名的。其名字被普遍认为来源于2处:

“PipinstallsPackages”(“pip安装包”)

“PipinstallsPython”(“pip安装Python”)

virtualenvvirtualenv是用于创建一个独立的Python环境的工具。解决问题:

当一个程序需要使用Python2.7版本,而另一个程序需要使用Python3.6版本,如果将所有程序都安装在系统下的默认路径,如:/usr/lib/python2.7/site-packages,当不小心升级了本不该升级的程序时,将会对其他的程序造成影响。

安装程序或在程序运行时对其库或库的版本进行修改,都会导致程序的中断。

在共享主机时,无法在全局site-packages目录中安装包。

virtualenv将会为它自己的安装目录创建一个环境,这并不与其他virtualenv环境共享库;同时也可以选择性地不连接已安装的全局库。

pip与conda比较

依赖项检查

pip:

不一定会展示所需其他依赖包。

安装包时或许会直接忽略依赖项而安装,仅在结果中提示错误。

conda:

列出所需其他依赖包。

安装包时自动安装其依赖项。

可以便捷地在包的不同版本中自由切换。

环境管理

pip:维护多个环境难度较大

conda:比较方便地在不同环境之间进行切换,环境管理较为简单

对系统自带Python的影响

pip:在系统自带Python中包的更新/回退版本/卸载将影响其他程序。

conda:不会影响系统自带Python。

适用语言

pip:仅适用于Python

conda:适用于Python(主要),R,Ruby,Lua,Scala,Java,JavaScript,C/C++,FORTRAN。

conda与pip、virtualenv的关系

conda结合了pip和virtualenv的功能。

conda使用了一个新的包格式,pip不能安装和解析conda的包格式。可以使用两个工具,但是它们是不能交互的,比如使用pip本地安装conda的离线包。

pip(Python包管理器)

介绍

pip是Python的官方包管理器,它随Python的版本一起发布。当安装Python时,pip也会被安装。

通过pip可以轻松地安装和管理Python的不属于Python标准库的各种第三方库(包),以便可以在项目中可以直接在代码中引入并使用它们。

pip是一个命令行工具,可以直接在终端或命令提示符中使用。

基本使用命令

python包管理

#查看已安装的包piplist#查看需要升级的库piplist-o#安装一个python包pipinstallpackage_name#package_name:具体地包名#安装特定版本的包pipinstallpackage_name==version_number#安装本地包pipinstall/path/to/package#/path/to/package:本地包路径#pip的超时时间默认为15秒,如果下载速度过慢,可以使用以下命令设置超时时间为60秒#方式1:添加参数--default-timeout=60。#方式:在配置里面[global]下添加timeout=60pipinstall--default-timeout=60package_name#指定国内的源(阿里云)来安装某个包pipinstall-ihttps://pypi.tuna./simple#注意:如果url是http的化,需要信任(因为未加密),可以通过下面两个方法解决#方式1:安装时加入--trusted-host临时参数pipinstall-ihttp://pypi.douban.com/simple/--trusted-hostpypi.douban.com/simplepackage_name#方式2:在pip.conf中加入trusted-host选项,该方法是一劳永逸[global]index-url=http://mirrors.aliyun.com/pypi/simple/[install]trusted-host=mirrors.aliyun.com#升级包pipinstall--upgradepackage_name#升级pippipinstall--upgradepip#卸载包pipuninstallpackage_name#安装包的依赖项pipinstallpackage_name[dependencies]#验证已安装的库是否有兼容依赖问题pipcheckpackage_name#下载某个包到指定的路径下(不安装)pipdownloadpackage_name-d'某个路径'#查看包的详细信息pipshowpackage_name#导出已安装的包列表pipfreeze>requirements.txt#从requirements.txt文件中安装包pipinstall-rrequirements.txt

下载源管理

#新增全局下载源。国内最好更换pip的源,以便更快地下载包pipconfigsetnamevalue#示例:清华源pipconfigsetglobal.index-urlhttps://pypi.tuna./simple#删除全局下载源pipconfigunsetname#查看pip下载的安装包的默认路径python-msite#显示pip的配置列表pipconfiglist#显示pip文件的所有存储位置pip-vconfiglist#输出的不同的目录对应不同的参数--global(全局)、--user(用户)、--site

其他命令

#清理缓存。pip安装包的时候,会下载并缓存一些包以便后续使用,不会自动删除,这可能会占用磁盘空间,需要手动删除pipcachepurge#查看pip版本pip--versionpip-V

pip的常规参数选项

-r,--requirement:从给定的需求文件中进行安装。此选项可多次使用。

-c,--constraint:使用给定的约束文件约束版本。此选项可多次使用。

约束文件相对于需求文件更加的智能,约束文件与需求文件在一个关键方面不同:将包放入约束文件不会导致安装包,而需求文件将安装列出的所有包。常用来放某个包的依赖项。

--no-deps:不要安装程序包依赖项

--pre,pip:查找包括预发布和开发版本。默认情况下,pip只查找稳定版本。

-e,--editable:从本地项目路劲或VCSurl以可编辑模式(即setuptools开发模式)安装项目。

-t,--target

:将软件包安装到,默认情况下,这不会替换下已经存在的文件或文件夹

--platform:仅使用与兼容的轮子。默认为运行系统的平台。多次使用此选项可指定目标解释器支持的多个平台

-U,--update:将所有指定的软件包升级到最新的可用版本。依赖项的处理取决于所使用的升级策略。

--upgrade-strategy:确定应如何处理依赖项升级。两种模式:

“eager”:无论当前安装的依赖项版本是否满足升级包的要求,都会升级依赖项

“only-if-needed”:仅在不满足升级包的要求时升级

--force-reinstall:重新安装所有软件包,即使它们已经是最新的

-I,--ignore-installed:忽略已安装的软件包,覆盖它们。

如果现有软件包的版本不同或安装了不同的软件包管理器,这可能会破坏你的系统。

--compile:将python源文件编译为字节码

--no-compile:不要将python源文件编译为字节码

--no-binary:不要使用二进制软件包。可以是:

all:禁用所有二进制软件包

none:清空之前提供的软件包,或者使用指定的软件包,使用逗号分割

请注意,有些软件包很难编译,在使用此选项时可能无法安装。

--only-binary:不要使用源程序包

Conda(Anaconda)

参考:Anaconda介绍、安装及使用教程

介绍

Conda是一个开源的包管理系统和环境管理系统,可在Windows、macOS和Linux上运行。

Conda可快速安装、运行和更新包及其依赖项,因此可以轻松地在计算机上创建、保存、加载和切换环境。

它本是为Python程序而创造的,因为Python的版本比较多,并且它的库也非常广泛,同时库和库之间存在很多依赖关系,所以在库的安装和版本的管理上很麻烦,因此设计Conda作为一个管理版本和Python环境的工具,但它也可以打包和管理任何语言的软件。

conda是包含在Anaconda里的,因此安装了Anaconda就可以直接使用Conda,点击链接下载download,选择对应的系统和版本类型。

Anaconda是一个免费开源的Python和R语言的发行版本,用于计算科学(数据科学、机器学习、大数据处理和预测分析),

Anaconda致力于简化软件包管理系统和部署,附带了Conda、python和150多个科学软件包及其相关的包。

Anaconda的包使用软件包管理系统Conda进行管理。

在项目开发和部署过程中,由于项目需要的虚拟环境不同,如python版本、模块版本等,即可通过Conda为每个项目创建环境,然后在对应环境进行管理和使用。

多种编程语言的包package和虚拟环境environment的管理

非常简单的完成package的安装、运行、更新、删除、依赖问题

可操作repo.anaconda.com上7,500+packages

非常简单的完成不同环境的构建、保存、加载及切换

支持语言:Python、R、Ruby、Lua、Scala、Java、JavaScript、C/C++、FORTRAN

但一般主要用于管理python包

支持操作系统:Windows,macOS和Linux

Conda常用指令

虚拟环境管理

#查看所有环境。注:1.*号所在的行表示当前所在环境。2.系统默认虚拟环境为basecondaenvlistcondainfo-e#创建新的虚拟环境。注:1.遇到yes/no输入yes,即可完成创建。condacreate-nenvs_namepython=python_version#envs_name:指定环境名称#python_version:指定Python版本#进入虚拟环境condaactivateenvs_name#退出当前环境condadeactivate#删除虚拟环境condaenvremove-nenvs_name#复制虚拟环境condacreate-nnew_envs_name--cloneold_envs_name#更新pythoncondaupdatepython#更新conda版本。注:必须在base环境更新condaupdateconda

模块/包管理

#查看当前环境的包列表condalist#查看指定环境的包列表condalist-nenvs_name#在当前环境安装包。注:1.默认安装最新版本,2.同时安装多个包用空格分隔。condainstallpackage_name#在指定环境安装包condainstall--nameenv_namepackage_name#安装指定版本的包。注:使用conda安装指定包时,conda可以自动处理相关的依赖包condainstallnumpy=1.19#指定范围内中版本包安装(安装版本处于1.0.4到1.1.1之间的pandas)condainstall'pandas>1.0.4,<1.1.1'#指定list中版本包安装(安装pandas1.0.4版或者1.1.1版)condainstall'pandas[version='1.0.4|1.1.1']'#包安装跳过[y/n]。默认情况下为false,即安装过程中会请求是否继续安装,设置为yes则不再弹出请求。condaconfig--setalways_yesyes#卸载当前环境的包condaremovepackage_name#卸载指定环境的包condaremove--nameenv_namepackage_name#升级当前环境的包condaupdate/upgradepackage_name#升级指定环境的包condaupdate/upgrade-nenv_namepackage_name#升级全部包condaupgrade--all#精确查找包condasearchpackage_name#模糊查找包,模糊符号为*condasearch*<模糊词>*#查看某个范围内版本包condasearch'PKGNAME[version='>=1.0.0,<1.1']'

conda下载源管理

#查看已配置下载源condaconfig--showchannels#查看已配置下载源优先级condaconfig--getchannels#新增下载源(清华大学源)condaconfig--addchannelschannels_Namecondaconfig--addchannelshttps://mirrors.tuna./anaconda/pkgs/free/#删除下载源condaconfig--removechannelschannels_Name#显示包的安装来源condaconfig--setshow_channel_urlsyes

注:Conda下载源实际是写入到了.condarc文件里:

linux系统的路径为/home/xx/.condarc

windows系统的路径为C:\Users\admin\.condarc

windows默认无.condarc文件,需要condaconfig--setshow_channel_urlsyes先生成

其他命令

#检查conda版本conda--version#查看conda系统版本等信息condainfo#查看conda所有配置信息condaconfig--show

IDEA配置Conda虚拟环境

IntelliJIDEA在安装并启用Python插件后支持使用Conda为Python创建虚拟环境。

创建Conda环境:

确保已将Anaconda或Miniconda下载并安装在计算机上。

导航到文件|项目结构

方式1:左上角File>>>ProjectStructure

方式2:快捷键:Ctrl+Shift+Alt+S

点击加载图片

在'项目结构(ProjectStructure)'对话框中,在“平台设置(PlatformSetting)”部分下选择“SDK”,然后添加一个新的SDK,然后从弹出菜单中选择“PythonSDK

点击加载图片

在'添加Python解释器(AddPythonInterpreter)'对话框的左侧窗格中,选择“CondaEnvironment”。以下操作取决于以前是否存在Conda环境。如果选择“新环境(Newenvironment)”:

Location字段中指定新的Conda环境的位置。注意,新的Conda环境应位于的目录必须为空!

Pythonversion列表中选择Python版本

Condaexecutable字段中指定Conda可执行文件的位置

如果需要,请选中“使所有项目都可用(Makeavailabletoallprojects)”复选框。

如果选择“现有环境(Existingenvironment)”(推荐使用):

展开“解释器(Interpreter)”列表,然后选择任何现有的解释器。或者,单击选择“”并在文件系统中指定Conda可执行文件的路径,例如C:\Users\jetbrains\Anaconda3\python.exe

注:最好是Conda目录下的python.exe,否则可能会扫描不到安装好的第三方库

Condaexecutable字段中指定Conda可执行文件的位置

如果需要,请选中“使所有项目都可用(Makeavailabletoallprojects)”复选框。

单击确定以完成任务。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多