Python 包管理(pip、conda)基本使用指南

Python 包管理

概述

介绍

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

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


Anaconda、conda、pip、virtualenv 的区别

  • Anaconda

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

  • conda

    conda 是包及其依赖项和环境的管理工具。

    适用语言:Python,R,Ruby,Lua,Scala,Java,JavaScript,C/C++,FORTRAN

    适用平台:Windows,macOS,Linux

    用途:

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

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

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

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

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

  • pip

    pip 是用于安装和管理软件包的包管理器。

    pip 适用语言:Python

    Python 中默认安装的版本:

    • Python 2.7.9 及后续版本:默认安装,命令为 pip
    • Python 3.4 及后续版本:默认安装,命令为 pip、pip3

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

    • “Pip installs Packages”(“pip 安装包”)
    • “Pip installs Python”(“pip 安装 Python”)
  • virtualenv

    virtualenv 是用于创建一个独立的 Python 环境的工具。

    解决问题:

    • 当一个程序需要使用 Python 2.7 版本,而另一个程序需要使用 Python 3.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 包管理

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

    # 新增全局下载源。国内最好更换pip的源,以便更快地下载包
    pip config set name value
    # 示例:清华源
    pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple# 删除全局下载源
    pip config unset name# 查看pip下载的安装包的默认路径
    python -m site# 显示pip的配置列表
    pip config list
    # 显示pip文件的所有存储位置
    pip -v config list
    # 输出的不同的目录对应不同的参数 --global(全局)、--user(用户) 、--site
    
  • 其他命令

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

pip 的常规参数选项

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

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

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

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

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

  • -e,--editable <path/url> :从本地项目路劲或 VCS url 以可编辑模式(即setuptools 开发模式)安装项目。

  • -t,--target <dir> :将软件包安装到 <dir>,默认情况下,这不会替换 <dir>下已经存在的文件或文件夹

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

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

  • --upgrade-strategy <upgrade_strategy> :确定应如何处理依赖项升级。

    两种模式:

    • “eager” :无论当前安装的依赖项版本是否满足升级包的要求,都会升级依赖项
    • “only-if-needed” :仅在不满足升级包的要求时升级
  • --force-reinstall :重新安装所有软件包,即使它们已经是最新的

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

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

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

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

  • --no-binary <format_control> :不要使用二进制软件包。

    <format_control> 可以是:

    • all:禁用所有二进制软件包
    • none:清空之前提供的软件包,或者使用指定的软件包,使用逗号分割

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

  • --only-binary <format_control> :不要使用源程序包


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.系统默认虚拟环境为base
    conda env list
    conda info -e# 创建新的虚拟环境。注:1.遇到yes/no输入yes,即可完成创建。
    conda create -n envs_name python=python_version
    # envs_name			:指定环境名称
    # python_version	:指定Python版本# 进入虚拟环境
    conda activate envs_name
    # 退出当前环境
    conda deactivate# 删除虚拟环境
    conda env remove -n envs_name# 复制虚拟环境
    conda create -n new_envs_name --clone old_envs_name# 更新python
    conda update python# 更新conda版本。注:必须在base环境更新
    conda update conda
    
  • 模块/包管理

    # 查看当前环境的包列表
    conda list
    # 查看指定环境的包列表
    conda list -n envs_name# 在当前环境安装包。注:1.默认安装最新版本,2.同时安装多个包用空格分隔。
    conda install package_name
    # 在指定环境安装包
    conda install --name env_name package_name
    # 安装指定版本的包。注:使用conda安装指定包时,conda可以自动处理相关的依赖包
    conda install numpy=1.19
    # 指定范围内中版本包安装(安装版本处于1.0.4到1.1.1之间的pandas)
    conda install "pandas>1.0.4,<1.1.1"
    # 指定list中版本包安装(安装pandas 1.0.4版或者1.1.1版)
    conda install "pandas[version='1.0.4 |1.1.1']"# 包安装跳过【y/n】。默认情况下为 false,即安装过程中会请求是否继续安装,设置为yes则不再弹出请求。
    conda config --set always_yes yes# 卸载当前环境的包
    conda remove package_name
    # 卸载指定环境的包
    conda remove --name env_name package_name# 升级当前环境的包
    conda update/upgrade package_name
    # 升级指定环境的包
    conda update/upgrade -n env_name package_name
    # 升级全部包
    conda upgrade --all# 精确查找包
    conda search package_name
    # 模糊查找包,模糊符号为 *
    conda search *<模糊词>*
    # 查看某个范围内版本包
    conda search "PKGNAME [version='>=1.0.0,<1.1']"
    
  • conda 下载源管理

    # 查看已配置下载源
    conda config --show channels# 查看已配置下载源优先级
    conda config --get channels# 新增下载源(清华大学源)
    conda config --add channels channels_Name
    conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/# 删除下载源
    conda config --remove channels channels_Name# 显示包的安装来源
    conda config --set show_channel_urls yes
    

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

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

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

      windows 默认无 .condarc 文件,需要 conda config --set show_channel_urls yes 先生成

  • 其他命令

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

IDEA 配置 Conda 虚拟环境

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

创建 Conda 环境:

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

  2. 导航到文件|项目结构

    • 方式1:左上角 File >>> Project Structure
    • 方式2:快捷键:Ctrl+Shift+Alt+S

    在这里插入图片描述

  3. 在 "项目结构(Project Structure)"对话框中,在 “平台设置(Platform Setting)” 部分下选择“ SDK ” ,然后添加一个新的 SDK ,然后从弹出菜单中选择 “Python SDK

    在这里插入图片描述

  4. 在"添加 Python 解释器(Add Python Interpreter)"对话框的左侧窗格中,选择 “Conda Environment” 。以下操作取决于以前是否存在 Conda 环境。

    如果选择“ 新环境(New environment)” :

    1. Location 字段中指定新的 Conda 环境的位置。注意,新的 Conda 环境应位于的目录必须为空!
    2. Python version 列表中选择 Python 版本
    3. Conda executable 字段中指定 Conda 可执行文件的位置
    4. 如果需要, 请选中“ 使所有项目都可用(Make available to all projects)”复选框。

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

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

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

    2. Conda executable 字段中指定 Conda 可执行文件的位置

    3. 如果需要, 请选中“ 使所有项目都可用(Make available to all projects)”复选框。

  5. 单击确定以完成任务。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/56556.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【力扣】2813 子序列最大优雅度

class Solution//诡异的数据结构维护反悔贪心 { public:long long findMaximumElegance(vector<vector<int>>& items, int k){sort(items.begin(), items.end(), [](const auto &a, const auto &b){return a[0] > b[0];});//奇妙的排序方法long lon…

K8S最新版本集群部署(v1.28) + 容器引擎Docker部署(上)

温故知新 &#x1f4da;第一章 前言&#x1f4d7;背景&#x1f4d7;目的&#x1f4d7;总体方向 &#x1f4da;第二章 基本环境信息&#x1f4d7;机器信息&#x1f4d7;软件信息&#x1f4d7;部署用户kubernetes &#x1f4da;第三章 Kubernetes各组件部署&#x1f4d7;安装kube…

Linux(实操篇一)

Linux实操篇 Linux(实操篇一)1. 常用基本命令1.1 帮助命令1.1.1 man获得帮助信息1.1.2 help获得shell内置命令的帮助信息1.1.3 常用快捷键 1.2 文件目录类1.2.1 pwd显示当前 工作目录的绝对路径1.2.2 ls列出目录的内容1.2.3 cd切换目录1.2.4 mkdir创建一个新的目录1.2.5 rmdir删…

Linux环境搭建SVN服务器并实现公网访问 - cpolar端口映射

文章目录 前言1. Ubuntu安装SVN服务2. 修改配置文件2.1 修改svnserve.conf文件2.2 修改passwd文件2.3 修改authz文件 3. 启动svn服务4. 内网穿透4.1 安装cpolar内网穿透4.2 创建隧道映射本地端口 5. 测试公网访问6. 配置固定公网TCP端口地址6.1 保留一个固定的公网TCP端口地址6…

【HashMap】key和value能否为null

【HashMap】key和value能否为null 【一】HashMap【二】HashTable【三】ConcurrentHashMap【四】测试代码【五】底层代码分析 【一】HashMap &#xff08;1&#xff09;结论&#xff1a;HashMap对象的key、value值均可为null HashMap 的 key 和 value 都可以为 null 值。在 Jav…

Ubuntu20.04下安装搜狗输入法Linux版

Ubuntu20.04下安装搜狗输入法Linux版 参考搜狗输入法的官网安装指南&#xff1b; 第一步&#xff1a;打开搜狗输入法官网&#xff1b; https://shurufa.sogou.com/ 点击X86_64后将会自动跳转到搜狗输入法的安装指南中&#xff1b; 安装指南 Ubuntu搜狗输入法安装指南 搜狗…

Linux的Man Page知识记录

Man&#xff08;short for manual&#xff09; Page是Unix和Linux操作系统中的一个重要文档&#xff0c;提供命令、函数、系统调用等的详细介绍和使用说明。它是以纯文本的形式出现&#xff0c;通常在终端&#xff08;terminal&#xff09;中使用man命令访问。Man Page按照章节…

elementui的el-tabs标签页样式修改

一、官网样式&#xff1a; 二、修改样式 1.去掉下划线 效果&#xff1a; 代码: /* 去掉tabs标签栏下的下划线 */ ::v-deep .el-tabs__nav-wrap::after {position: static !important;/* background-color: #fff; */ } 2.改变下划线颜色 效果&#xff1a; 代码&#xff1a;…

Docker网络-探索容器网络如何相互通信

当今世界&#xff0c;企业热衷于容器化&#xff0c;这需要强大的网络技能来正确配置容器架构&#xff0c;因此引入了 Docker Networking 的概念。Docker 是一种容器化平台&#xff0c;允许您在独立、轻量级的容器中运行应用程序和服务。Docker 提供了一套强大的网络功能&#x…

QNAP(威联通)NAS外远程访问指南,免费内网穿透工具的应用和配置指导——“cpolar内网穿透”

文章目录 前言1. 威联通安装cpolar内网穿透2. 内网穿透2.1 创建隧道2.2 测试公网远程访问 3. 配置固定二级子域名3.1 保留二级子域名3.2 配置二级子域名 4. 使用固定二级子域名远程访问 前言 购入威联通NAS后&#xff0c;很多用户对于如何在外在公网环境下的远程访问威联通NAS…

Qt 自定义菜单、右键菜单

在接触Qt这段时间以来&#xff0c;经常遇到菜单项的问题&#xff08;右键菜单、托盘菜单、按钮菜单等&#xff09;&#xff0c;QMenu用于菜单栏,上下文菜单,弹出菜单等&#xff0c;利用QMenuQAction就可以达到效果&#xff01; 右键菜单实现&#xff1a;通过重写contextMenuEv…

【redis问题】Caused by: io.netty.channel

遇到的问题&#xff1a; 在使用 RedisTemplate 连接 Redis 进行操作的时候&#xff0c;发生了如下报错&#xff1a; 测试代码为&#xff1a; 配置文件&#xff1a; 问题根源&#xff1a; redis没有添加端口映射解决方案&#xff1a; 删除原来的redis容器&#xff0c;添加新…

stm32之11.USART串口通信

可以添加上拉电阻&#xff0c;但会增加功耗&#xff0c;传输距离变长 要添加库函数USART 官方参考文档说明书位置 ALT&#xff0b;左键可实现整体删除&#xff08;如下图&#xff09; 输出模式第三种模式AF ---------------------- 源码 远程控制pc端 #include <stm32f4x…

springboot服务端接口外网远程调试,并实现HTTP服务监听

文章目录 前言1. 本地环境搭建1.1 环境参数1.2 搭建springboot服务项目 2. 内网穿透2.1 安装配置cpolar内网穿透2.1.1 windows系统2.1.2 linux系统 2.2 创建隧道映射本地端口2.3 测试公网地址 3. 固定公网地址3.1 保留一个二级子域名3.2 配置二级子域名3.2 测试使用固定公网地址…

MDK 5.xx.0 + STM32F10x 笔记

天才脑袋比不上烂笔头, 写给自己看, 自用资料。 安装MDK STM32环境 Download MDK安装 MDK -> c:\keil_v5 用默认路径下载 ARMCC V5.06 Update 7 (build960) <- 长期稳定支持版本安装至 c:\keil_v5\arm\ARMCC开启 uVision.设定 预设编译程序版本 : V5.06 Update 7 (bui…

java 版本企业招标投标管理系统源码+功能描述+tbms+及时准确+全程电子化 tbms

​ 功能描述 1、门户管理&#xff1a;所有用户可在门户页面查看所有的公告信息及相关的通知信息。主要板块包含&#xff1a;招标公告、非招标公告、系统通知、政策法规。 2、立项管理&#xff1a;企业用户可对需要采购的项目进行立项申请&#xff0c;并提交审批&#xff0c;查…

数学系硕士研究生的科研过程——PDE约束下含参优化控制问题的深度学习算法

笔者今天上午收到了之前北大课题组老板的通知&#xff0c;得知研究生期间和学长合作的论文终于被siam接收&#xff0c;终于为自己研究生涯画上了一个句号。这里打算分享一下个人的科研过程以及这篇论文的工作&#xff0c;即将读研或者打算读研的同学或许可以从中获得益处。论文…

【数据结构】 队列(Queue)与队列的模拟实现

文章目录 &#x1f340;队列(Queue)的概念&#x1f38b;队列的使用&#x1f38d;队列的模拟实现&#x1f6a9;创建队列&#x1f6a9;入队列&#x1f6a9;出队列&#x1f6a9;获取队头元素&#x1f6a9;获取队列长度&#x1f6a9;判断是否为空&#x1f6a9;完整代码 &#x1f33…

软件工程(十三) 设计模式之结构型设计模式(一)

前面我们记录了创建型设计模式,知道了通过各种模式去创建和管理我们的对象。但是除了对象的创建,我们还有一些结构型的模式。 1、适配器模式(Adapter) 简要说明 将一个类的接口转换为用户希望得到的另一个接口。它使原本不相同的接口得以协同工作。 速记关键字 转换接…

《网络是怎样连接的》(五)

本文主要取材于 《网络是怎样连接的》 第五章。 目录 5.1 Web服务器的部署地点 5.2 防火墙的结构和原理 5.3服务器负载平衡 5.4 使用缓存服务器分担负载 5.5 内容分发服务 简述&#xff1a;本文主要内容是解释 网络包如何朝服务器前进&#xff0c;并通过服务器前面的防…