安装软件包

本节介绍如何安装Python 的基础知识

需要注意的是,在这种情况下,术语“软件包”被用作分发的同义词(即要安装的软件包),而不是指您在Python源代码中导入软件包类型(即模块的容器)。Python社区通常使用术语“包” 来引用分布使用术语“分发”通常不是首选,因为它可能很容易与Linux发行版或Python之类的其他更大的软件发行版混淆。

安装软件包的要求

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

确保你可以从命令行运行

在你继续下一步之前,确保你有Python,并且你的命令行可以使用预期的版本。你可以通过运行来检查:

python --version

你应该得到一些输出如果您没有Python,请从python.org安装最新的3.x版本,或者参阅Hitchhiker's Guide to 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(也称为终端或 控制台)中运行。请参阅Python入门教程,了解如何使用操作系统的shell以及如何与Python进行交互。

注意

 

如果您使用的是像IPython或Jupyter笔记本这样的增强型外壳,则可以像本教程中那样运行系统命令,方法是使用!字符对它们进行预处理

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

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

注意

 

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

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

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

pip --version

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

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

python -m ensurepip --default-pip

如果仍然不允许你运行pip

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

  • 运行[2] 这将安装或升级点子。此外,它将安装setuptoolswheel,如果它们尚未安装。python get-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(或任何您的平台的标准位置),那么很容易导致无意中升级不应升级的应用程序。

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

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

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

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

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

基本用法如下所示:

使用virtualenv

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

使用venv

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

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

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

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

使用pip进行安装

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

从PyPI安装

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

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

pip install 'SomeProject'

要安装特定版本:

pip install 'SomeProject==1.4'

要安装大于或等于一个版本并且小于另一个版本:

pip install 'SomeProject>=1,<2'

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

pip install 'SomeProject~=1.4.2'

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

源分布与轮子

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

车轮是一种预建的分发格式,与源代码发布(sdist)相比,可提供更快的安装,特别是当项目包含已编译的扩展时。

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

升级包

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

pip install --upgrade SomeProject

安装到用户网站

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

pip install --user SomeProject

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

请注意,该--user标志在虚拟环境中不起作用 - 所有安装命令都会影响虚拟环境。

需求文件

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

pip install -r requirements.txt

从VCS安装

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

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演员

$ 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或管理员访问权限。目前,pip正在考虑通过让用户安装默认行为来改变这一点
[3]从Python 3.4开始venv(替代virtualenv的stdlib )将创建pip 预安装的virtualenv环境,从而使其成为virtualenv的平等替代品 
[4]兼容版本说明符已被接受 PEP 440 和支持在 setuptools v8.0和 pip v6.0中发布
Logo

更多推荐