可能有很多刚入行不久的朋友们,每天都在用pip 命令install 一些python软件包,却对pypi 不甚了解,那这个pip和pypi之间有什么练习和区别呢?下面就带大家简单有个了解吧!希望能够帮助到大家!

pip 是一个现代的,通用的 Python 包管理工具,是easy_install的替代品,英文python  install packages

Python包索引(PyPI)是Python编程语言的软件存储库。

         PyPI(Python Package Index)是python官方的第三方库的仓库,所有人都可以下载第三方库或上传自己开发的库到PyPI。PyPI推荐使用pip包管理器来下载第三方库。
pip可正常工作在Windows、Mac OS、Unix/Linux等操作系统上,但是需要至少2.6+和3.2+的CPython或PyPy的支持。python 2.7.9 和3.4以后的版本已经内置累pip程序,所以不需要安装。

PyPI可帮助您查找和安装Python社区开发和共享的软件。

包作者使用PyPI来分发他们的软件 。

这里有pypi官方社区详细介绍,大家可以进去看看   https://pypi.org/,写得很详细!

1,安装包  https://packaging.python.org/tutorials/installing-packages/#installing-packages

内容

  • 安装包的要求

    • 确保您可以从命令行运行Python
    • 确保您可以从命令行运行pip
    • 确保pip,setuptools和wheel是最新的
    • (可选)创建虚拟环境
  • 创建虚拟环境
  • 使用pip进行安装
  • 从PyPI安装
  • 来源分布与车轮
  • 升级包
  • 安装到用户站点
  • 需求文件
  • 从VCS安装
  • 从其他索引安装
  • 从本地src树安装
  • 从本地存档安装
  • 从其他来源安装
  • 安装预发行版
  • 安装Setuptools“Extras”

安装包的要求

本节介绍在安装其他Python包之前要遵循的步骤。

确保您可以从命令行运行

在继续之前,请确保您拥有Python,并且可以从命令行获得预期版本。您可以通过运行来检查:

python --version

你应该得到一些输出。如果您没有Python,请从python.org安装最新的3.x版本,或参考Hitchhiker的Python指南的安装Python部分。Python 3.6.3

注意

如果您是新手并且遇到如下错误:

>>>

>>> python --version
Traceback (most recent call last):File "<stdin>", line 1, in <module>
NameError: name 'python' is not defined

这是因为本教程中的此命令和其他建议命令旨在在shell(也称为终端或 控制台)中运行。有关使用操作系统的shell和与Python交互的介绍,请参阅Python入门指南入门教程。

注意

如果您正在使用像IPython或Jupyter笔记本这样的增强型shell,则可以通过使用!字符为它们添加前缀来运行本教程中的系统命令:

In [1]: import sys!{sys.executable} --version
Python 3.6.3

建议编写{sys.executable}而不是简单python,以确保命令在与当前运行的笔记本匹配的Python安装中运行(可能与python命令引用的Python安装不同)。

注意

由于大多数Linux发行版处理Python 3迁移的方式,使用系统Python而不首先创建虚拟环境的Linux用户应该python使用python3和使用pip命令替换本教程中的命令。千万不能 在本教程与运行任何命令:如果你得到一个权限错误,回来的部分上创建虚拟环境中,设置一个,然后用教程继续写。pip3 --usersudo

确保你可以在命令行中运行PIP

此外,您需要确保您有可用的点数。您可以通过运行来检查:

pip --version

如果您从源代码安装Python,使用python.org的安装程序,或者通过Homebrew安装Python,那么您应该已经拥有了pip。如果您在Linux上并使用操作系统软件包管理器进行安装,则可能需要单独安装pip,请参阅 使用Linux软件包管理器安装pip / setuptools / wheel。

如果pip尚未安装,则首先尝试从标准库引导它:

python -m ensurepip --default-pip

如果仍然不允许你运行pip

  • 安全下载get-pip.py [1]

  • 跑。[2] 这将安装或升级pip。此外,如果它们尚未安装,它将安装setuptools和wheel。pythonget-pip.py

    警告

    如果您使用的是由您的操作系统或其他软件包管理器管理的Python安装,请务必小心。get-pip.py不与这些工具协调,可能会使系统处于不一致状态。您可以使用 安装在其中设计用于本地安装的软件。python get-pip.py --prefix=/usr/local//usr/local

确保pip,setuptools和wheel是最新的

虽然pip单独就足以从预先构建的二进制存档进行安装,但最新的setuptoolswheel项目副本对于确保您也可以从源存档进行安装非常有用:

python -m pip install --upgrade pip setuptools wheel

(可选)创建虚拟环境

有关详细信息,请参阅下面的部分,但这是在典型Linux系统上使用的基本venv [3]命令:

python3 -m venv tutorial_env
source tutorial_env/bin/activate

这将在tutorial_env子目录中创建新的虚拟环境,并配置当前shell以将其用作默认python环境。

创建虚拟环境

Python“虚拟环境”允许将Python 包安装在特定应用程序的隔离位置,而不是全局安装。

想象一下,你有一个需要LibFoo版本1的应用程序,但另一个应用程序需要版本2.你如何使用这两个应用程序?如果将所有内容安装到/usr/lib/python3.6/site-packages(或任何平台的标准位置),则很容易在无意中升级不应升级的应用程序的情况下结束。

或者更一般地说,如果你想安装一个应用程序并保留它,该怎么办?如果应用程序有效,则其库中的任何更改或这些库的版本都可能会破坏应用程序。

另外,如果您无法将软件包安装到全局site-packages目录中,该怎么办?例如,在共享主机上。

在所有这些情况下,虚拟环境可以帮助您。它们有自己的安装目录,并且不与其他虚拟环境共享库。

目前,有两种常用的工具可用于创建Python虚拟环境:

  • 默认情况下,在Python 3.3及更高版本中可以使用venv,并在Python 3.4及更高版本中将pip和setuptools安装 到创建的虚拟环境中。
  • virtualenv需要单独安装,但支持Python 2.7+和Python 3.3+,默认情况下, pip, setuptools和 wheel始终安装到创建的虚拟环境中(无论Python版本如何)。

基本用法如下:

使用virtualenv:

virtualenv <DIR>
source <DIR>/bin/activate

使用venv:

python3 -m venv <DIR>
source <DIR>/bin/activate

有关更多信息,请参阅virtualenv文档或venv文档。

在上述两种情况下,Windows用户都应该_not_使用 source命令,而应该直接从命令shell 运行activate脚本。在Unix shell下使用source可确保虚拟环境的变量在当前shell中设置,而不是在子进程中设置(然后消失,没有任何有用的效果)。

直接管理多个虚拟环境可能会变得乏味,因此 依赖关系管理教程引入了一个更高级别的工具Pipenv,它可以为您处理的每个项目和应用程序自动管理单独的虚拟环境。

使用pip进行安装

pip是推荐的安装程序。下面,我们将介绍最常见的使用方案。有关更多详细信息,请参阅 pip文档,其中包含完整的参考指南。

从PyPI安装

pip最常见的用法是使用需求说明符从Python包索引进行安装。一般来说,需求说明符由项目名称后跟可选的版本说明符组成。 PEP 440包含a 当前支持的说明符的完整规范。以下是一些例子。

要安装最新版本的“SomeProject”:

pip install 'SomeProject'

要安装特定版本:

pip install 'SomeProject==1.4'

要安装大于或等于一个版本而不是另一个版本:

pip install 'SomeProject>=1,<2'

安装一个版本 与某个版本 “兼容”: [4]

pip install 'SomeProject~=1.4.2'

在这种情况下,这意味着安装任何版本“== 1.4。*”版本也是“> = 1.4.2”。

源分布与车轮

pip可以从 Source Distributions(sdist)或 Wheels安装,但如果两者都存在于PyPI上,则pip将更喜欢兼容的wheel。

轮子是预先构建的分发格式,与源分发(sdist)相比,提供更快的安装,特别是当项目包含编译的扩展时。

如果pip没有找到要安装的轮子,它将在本地构建一个轮子并将其缓存以供将来安装,而不是在将来重建源分发。

升级包

将已安装的SomeProject从PyPI 升级到最新版本。

pip install --upgrade SomeProject

安装到用户站点

要安装与当前用户隔离的软件包,请使用以下--user标志:

pip install --user SomeProject

有关更多信息,请参阅pip文档中的“ 用户安装”部分。

请注意,在--user虚拟环境中,该标志无效 - 所有安装命令都将影响虚拟环境。

需求文件

安装需求文件中指定的需求列表。

pip install -r requirements.txt

从VCS安装

以“可编辑”模式从VCS安装项目。有关语法的完整细分,请参阅有关VCS支持的 pip部分。

pip install -e git+https://git.repo/some_pkg.git#egg=SomeProject          # from git
pip install -e hg+https://hg.repo/some_pkg#egg=SomeProject                # from mercurial
pip install -e svn+svn://svn.repo/some_pkg/trunk/#egg=SomeProject         # from svn
pip install -e git+https://git.repo/some_pkg.git@feature#egg=SomeProject  # from a branch

从其他索引安装

从备用索引安装

pip install --index-url http://my.package.repo/simple/ SomeProject

除了PyPI之外,在安装期间搜索其他索引

pip install --extra-index-url http://my.package.repo/simple SomeProject

从本地src树安装

在开发模式下从本地src安装,即以项目似乎已安装的方式安装,但仍可从src树中编辑。

pip install -e <path>

您也可以从src正常安装

pip install <path>

从本地存档安装

安装特定的源归档文件。

pip install ./downloads/SomeProject-1.0.4.tar.gz

从包含存档的本地目录安装(并且不检查PyPI)

pip install --no-index --find-links=file:///local/dir/ SomeProject
pip install --no-index --find-links=/local/dir/ SomeProject
pip install --no-index --find-links=relative/dir/ SomeProject

从其他来源安装

要从其他数据源(例如Amazon S3存储)进行安装,您可以创建一个帮助应用程序,以便在数据中显示数据 PEP 503兼容索引格式,并使用该--extra-index-url标志指示pip使用该索引。

./s3helper --port=7777
pip install --extra-index-url http://localhost:7777 SomeProject

安装预发布

除稳定版本外,还可以查找预发布和开发版本。默认情况下,pip只能找到稳定的版本。

pip install --pre SomeProject

安装Setuptools“Extras”

安装setuptools extras。

$ pip install SomePackage[PDF]
$ pip install SomePackage[PDF]==3.0
$ pip install -e .[PDF]==3.0  # editable project in current directory

[1] 在此上下文中,“安全”是指使用现代浏览器或curl等工具从https URL下载时验证SSL证书。
[2] 根据您的平台,这可能需要root或Administrator访问权限。pip目前正在考虑通过让用户安装默认行为来改变这种情况。
[3] 从Python 3.4开始,venv(virtualenv的stdlib替代品 )将创建pip 预安装的virtualenv环境,从而使其成为virtualenv的平等替代品 。
[4] 兼容版本说明符已被接受 PEP 440 和支持在 setuptools v8.0和 pip v6.0中发布

PyPi到底是什么?pypi有啥作用?PyPi和pip有何渊源?相关推荐

  1. PyPi、pypi有啥作用?PyPi和pip有何渊源

    可能有很多刚入行不久的朋友们,每天都在用pip 命令install 一些python软件包,却对pypi 不甚了解,那这个pip和pypi之间有什么练习和区别呢?下面就带大家简单有个了解吧!希望能够帮 ...

  2. jsp 使用base标签 没有作用_终于弄明白衣服上,使用前请移除的标签到底是什么,起什么作用...

    点击上方"机械设计一点通"关注我们,每天学习一个机械设计相关知识点 发现买的T恤上,连在衣服上有个标签,上面写着使用前请移除.里面有个一硬条状物体,不知道是什么,很好奇,便把它拆开 ...

  3. vue config.js详解——vue config.js到底是什么,有什么作用?

    我们在做vue项目的时候,在根目录中肯定都看到过一个config.js文件,那么这个文件在整个项目中到底有什么作用呢? vue.config.js 是一个可选的配置文件,如果项目的 (和 packag ...

  4. JNDI到底是什么,有什么作用

    JNDI的一篇文章 前端时间总是在搞不清JNDI到底是干什么,虽然是一值在用,却不知道他最初出现的原因,用来,说不清是用来干什么,下面我相信介能解开这个迷雾里. [ 转贴一篇]  ---------- ...

  5. css 中的background:transparent到底是什么意思有什么作用

    点评:css 中的 transparent到底是什么意思? 一直觉得很奇怪,到底有什么用的啊?,本文将详细说明,需要的朋友可以参考下 有时我在看css时,看到有的css属性定义为background: ...

  6. jvm到底是什么?有什么作用?工作机制如何?

    1.jvm定义 JVM就是java虚拟机,它是一个虚构出来的计算机,可在实际的计算机上模拟各种计算机的功能.JVM有自己完善的硬件结构,例如处理器.堆栈和寄存器等,还具有相应的指令系统. 2.jvm作 ...

  7. 【Servlet教科书】Servlet到底是什么?有什么作用?(详细记录知识)

    文章目录 @[toc] 一.初识Servlet 1.1 Servlet概念 1.2 Servlet的核心作用 1.3 Servlet核心目录结构 1.3 IDEA工具内创建核心目录结构 1.4 Ser ...

  8. 施努卡: 机器视觉系统到底是什么?有什么作用?

    随着科技的发展,机器视觉检测系统已经在工业中取代了许许多多的人工检测岗位,在了解机器视觉系统之前,先来说一下"视觉"这词,视觉是一个生理学词汇,光作用于视觉器官,使其感受细胞兴奋, ...

  9. 计算机系统安全组策略是什么,电脑自带的安全模式到底是什么?有啥作用?

    一.安全模式是什么 有时候,我们的系统本来正常工作的,但是某天升级了一个有Bug的显卡驱动,或安装了一个新版本的杀毒软件后系统就无法正常启动了.为了解决这类会影响到windows正常运行,但又并非Wi ...

最新文章

  1. phpmyadmin 批量导出多个数据库
  2. 开始Windows Embedded Compact 7的第一个项目——虚拟机上的CEPC
  3. 【PP操作手册】试制计划
  4. docker如何实现重新打tag并删除原tag的镜像([仓库名: tag] 可以查询到指定id的镜像,同一个id镜像能有多个[仓库名: tag])(增加\删除镜像仓库:标签)
  5. php怎么在html上得到input值,怎么把一個php頁面的值傳到另一個html表單中的input里面去...
  6. Java并发编程-ThreadPool线程池
  7. Sharepoint学习笔记—Ribbon系列-- 2. 在Ribbon中添加新Tab
  8. RTCP协议解析--RR
  9. 条件随机场、CBOW、word2vect、skip-gram、负采样、分层softmax(1)
  10. 我的Android进阶之旅------经典的大牛博客推荐(排名不分先后)!!
  11. List集合去重的常见及常用的四种方式
  12. NX二次开发-UFUN新建工程图UF_DRAW_create_drawing
  13. 如何提升原创文章排名与百度冰桶算法
  14. utools配置内网穿透
  15. vue中获取短信验证码IOS手机问题
  16. 《青山翠影》玖 独行的时代 | 去程归程
  17. matlab 缩进快捷键(快捷删掉matlab代码前空格/换行符 批量改/删/加代码前空格)
  18. win10 docker 启动 mysq MySQL Server. Supplied value : /var/lib/mysql-files
  19. OpenGL学习-球体和phong光照模型
  20. stm32 pwm播放wav格式音乐移植遇到的问题

热门文章

  1. 关于定时任务一个批次起止时间的算法设计与实现
  2. JVM中的monitorenter和monitorexit
  3. LINUX内核编译选项-5
  4. [乡土民间故事_徐苟三传奇]第十六回_差狗子认输吃大粪
  5. Http 同步和异步的区别
  6. Elasticsearch索引新增字段
  7. windows电脑无线投屏到小米电视
  8. 请推荐几个程序员面试时自我介绍的范文!
  9. 1对多业务,数据库水平切分架构一次搞定 | 架构师之路
  10. 新型冠状病毒实时动态