PyPi到底是什么?pypi有啥作用?PyPi和pip有何渊源?
转载:https://blog.csdn.net/weixin_42139375/article/details/82711201
可能有很多刚入行不久的朋友们,每天都在用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
内容
- 安装包的要求
- 创建虚拟环境
- 使用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 --user
sudo
确保你可以在命令行中运行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
单独就足以从预先构建的二进制存档进行安装,但最新的setuptools
和wheel
项目副本对于确保您也可以从源存档进行安装非常有用:
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'
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”
$ pip install SomePackage[PDF]
$ pip install SomePackage[PDF]==3.0
$ pip install -e .[PDF]==3.0 # editable project in current directory
参考资料:
https://pypi.org/
PyPi到底是什么?pypi有啥作用?PyPi和pip有何渊源?的更多相关文章
- JNDI到底是什么,有什么作用
http://shitou521.iteye.com/blog/696006 ******************************************* JNDI的一篇文章 前端时间总是在 ...
- jvm到底是什么?有什么作用?工作机制如何?
1.jvm定义 JVM就是java虚拟机,它是一个虚构出来的计算机,可在实际的计算机上模拟各种计算机的功能.JVM有自己完善的硬件结构,例如处理器.堆栈和寄存器等,还具有相应的指令系统. 2.jvm作 ...
- css 中的background:transparent到底是什么意思有什么作用
有时我在看css时,看到有的css属性定义为background:transparent.意思就是背景透明.实际上background默认的颜色就是透明的属性.所以写和不写都是一样的 有段时间没写文章 ...
- 使用国内镜像通过pip安装python的一些包 Cannot fetch index base URL http://pypi.python.org/simple/
原文地址:http://www.xuebuyuan.com/1157602.html 学习flask,安装virtualenv环境,这些带都ok,但是一安装包总是出错无法安装, 比如这样超时的问题: ...
- pypi上传库
把程序打包上传到PyPi版本库中 转自 1 首先必须要按照以下文件结构 ├── douban │ ├── cli.py │ ├── douban.py │ ├── douban_token ...
- pypi 国内镜像 及修改全局方法
PyPi的官方网站为https://pypi.python.org,有时访问中会很慢,使用pip命令安装带其他依赖包的安装包,会经常失败.解决办法,使用国内PyPi镜像网站,修改pip的源. 网上搜索 ...
- 【Python实战02】共享Python代码到PyPI社区
之前学习了Python的列表,以及编写了一个函数来进行列表的输出,这次我们就继续来学习如何把我们已经编写好的代码共享到PyPI社区,这里以上篇文章中编写的print_lol函数为例. 函数转换为模块 ...
- 上传python包到PyPI
一.前言 由于项目需要将API响应的XML内容解析成python对象,写了一个简单的xml转python的库,因为功能简单,细节处理也不好,文档也没有,没想也不好意思上传到pypi. 后来由于多个不同 ...
- CentOS 6.5 PYPI本地源制作
转载:blog.csdn.net/tantexian 一.安装pip2pi工具: pip install pip2pi 或 git clone https://github.com/wolever ...
随机推荐
- 通过mstsc复制粘贴失败需要重新启动RDP剪切板监视程序rdpclip.exe
先结束程序 再重新启动程序
- Maven专题1——坐标与依赖
1. 坐标 坐标用来唯一定位一个Maven构件: GAV(必需):groupId, artifactId, version packaging(可选): 可取值如:jar(缺省), war, pom, ...
- Android学习记录(二)——第一次hello world及遇到的gradle安装问题
开始一个简单的hello world项目,简单了解Android studio的使用方法 第一步,打开Android studio,点击Create New Project 第二步,选择需要的模板 T ...
- Python-对Pcap文件进行处理,获取指定TCP流
通过对TCP/IP协议的学习,本人写了一个可以实现对PCAP文件中的IPV4下的TCP流提取,以及提取指定的TCP流,鉴于为了学习,没有采用第三方包解析pcap,而是对bytes流进行解析,其核心思想 ...
- NOI.AC#2144-子串【SAM,倍增】
正题 题目链接:http://noi.ac/problem/2144 题目大意 给出一个字符串\(s\)和一个序列\(a\).将字符串\(s\)的所有本质不同子串降序排序后,求有多少个区间\([l,r ...
- The art of multipropcessor programming 读书笔记-硬件基础1
本系列是 The art of multipropcessor programming 的读书笔记,在原版图书的基础上,结合 OpenJDK 11 以上的版本的代码进行理解和实现.并根据个人的查资料以 ...
- 洛谷3320 SDOI2015寻宝游戏(set+dfs序)(反向迭代器的注意事项!)
被\(STL\)坑害了一个晚上,真的菜的没救了啊. 准确的说是一个叫\(reverse\ iterator\)的东西,就是我们经常用的\(rbegin()\) 有一个非常重要的性质 在反向迭代器中,+ ...
- CentOS 7安装docker环境
一.环境准备 Docker支持以下的CentOS版本: 1.Docker运行在CentOS 7(64-bit)上要求系统为64位,系统内核版本为3.10以上 2.Docker运行在Centos 6.5 ...
- web全栈后台权限管理系统(VUE+ElementUi+nodeJs+koa2)
web全栈后台权限管理系统(VUE+ElementUi+nodeJs+koa2) 主要技术 前端 vue 全家桶 ElementUI 后端 Node.js Koa2 Mongoess 数据库 mong ...
- 关于 WinDoAdmin
WinDoAdmin(有温度,更有深度) an amazing winform admin 框架描述 最新基于Winform实现的Web样式中后台解决方案,大型企业级开发框架. 如果你要使用Winfo ...