安装程序包

本节介绍如何安装python的基础知识 packages .

需要注意的是,在这种情况下,术语“package”正被用作 distribution (即要安装的软件包),不指 package 在python源代码(即模块的容器)中导入。在python社区中,经常提到 distribution 使用术语“包装”。使用术语“发行版”通常不是首选,因为它很容易与Linux发行版或其他更大的软件发行版(如python本身)混淆。

安装包的要求

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

确保可以从命令行运行python

在进一步讨论之前,请确保您有python,并且可以从命令行获得预期的版本。您可以通过运行:

python --version

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

注解

如果你是新来的,你会遇到这样的错误:

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

这是因为本教程中的此命令和其他建议的命令旨在在 (也称为 终端慰问 )。初学者看 Python getting started tutorial 介绍如何使用操作系统的shell并与Python交互。

注解

如果您使用的是增强的shell(如ipython或jupyter笔记本),则可以通过在其前面加上 ! 字符:

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

建议你写 {{sys.executable}} 而不是平原 python 为了确保命令在与当前运行笔记本相匹配的python安装中运行(这可能与 python 命令引用)。

注解

由于大多数Linux发行版处理python 3迁移的方式,使用系统python而不首先创建虚拟环境的Linux用户应该替换 python 本教程中的命令 python3 以及 pip 命令与 pip3 --user . 做 not 使用以下命令运行本教程中的任何命令: sudo :如果出现权限错误,请返回有关创建虚拟环境的部分,设置一个虚拟环境,然后按照所写继续教程。

确保可以从命令行运行pip

此外,您还需要确保 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

  • python get-pip.py . 2 这将安装或升级PIP。此外,它将安装 setuptoolswheel 如果尚未安装。

    警告

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

确保PIP、设置工具和车轮是最新的

同时 pip 单独安装就足够了,可以从预先构建的二进制档案中安装 setuptoolswheel 项目有助于确保您也可以从源存档安装:

python -m pip install --upgrade pip setuptools wheel

或者,创建虚拟环境

section below 详细信息,但以下是基本信息 venv 3 在典型Linux系统上使用的命令:

python3 -m venv tutorial_env
source tutorial_env/bin/activate

这将在 tutorial_env 子目录,并将当前shell配置为将其用作默认值 python 环境。

创建虚拟环境

python“虚拟环境”允许python packages 安装在特定应用程序的独立位置,而不是在全局安装。如果要安全地安装全局命令行工具,请参见 安装独立命令行工具 .

假设您有一个应用程序需要libfoo的版本1,而另一个应用程序需要版本2。如何使用这两个应用程序?如果将所有内容安装到/usr/lib/python3.6/site-packages(或平台的标准位置)中,很容易导致无意中升级不应升级的应用程序。

或者更一般地说,如果您想安装一个应用程序并将其保留下来呢?如果应用程序正常工作,则其库或这些库的版本中的任何更改都会破坏应用程序。

另外,如果你不能安装呢 packages 进入全局站点包目录?例如,在共享主机上。

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

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

  • venv 在python 3.3及更高版本中默认可用,并安装 pipsetuptools 在Python3.4和更高版本中创建的虚拟环境中。

  • virtualenv 需要单独安装,但支持python 2.7+和python 3.3+,以及 pipsetuptoolswheel 在默认情况下,始终安装到创建的虚拟环境中(不考虑Python版本)。

基本用法如下:

使用 venv

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

使用 virtualenv

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

有关详细信息,请参阅 venv 文件或 virtualenv 博士学位。

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

直接管理多个虚拟环境会变得单调乏味,因此 dependency management tutorial 引入更高级的工具, Pipenv ,为您所处理的每个项目和应用程序自动管理单独的虚拟环境。

使用PIP进行安装

pip 是推荐的安装程序。下面,我们将介绍最常见的使用场景。有关详细信息,请参见 pip docs ,其中包括一个完整的 Reference Guide .

从PYPI安装

最常见的用法是 pip 是从安装 Python Package Index 使用A requirement specifier . 一般来说,需求说明符由项目名称和可选的 version specifier . PEP 440 包含一个 full specification 当前支持的说明符。下面是一些例子。

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

pip install "SomeProject"

要安装特定版本:

pip install "SomeProject==1.4"

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

pip install "SomeProject>=1,<2"

要安装的版本 "compatible" 对于特定版本: 4

pip install "SomeProject~=1.4.2"

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

震源分布与车轮

pip 可以从以下任一位置安装 Source Distributions (sdist)Wheels ,但如果这两个都存在于pypi上,则pip将首选兼容的 wheel .

Wheels 是预建的 distribution 与提供更快安装的格式相比 Source Distributions (sdist) 尤其是当项目包含已编译的扩展时。

如果 pip 找不到要安装的控制盘,它将在本地构建控制盘并将其缓存以备将来安装,而不是在将来重建源分发。

正在升级包

升级已安装的 SomeProject 最新消息。

pip install --upgrade SomeProject

安装到用户站点

安装 packages 与当前用户隔离的,使用 --user 旗帜:

pip install --user SomeProject

有关更多信息,请参阅 User Installs PIP文档的部分。

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

如果 SomeProject 定义任何命令行脚本或控制台入口点, --user 将导致它们安装在 user base 的二进制目录,该目录可能已存在于或可能不存在于shell的 PATH . (从版本10开始,PIP在将任何脚本安装到外部目录时显示警告 PATH )如果安装后shell中没有这些脚本,则需要将目录添加到 PATH

  • 在Linux和MacOS上,您可以通过运行 python -m site --user-base 并添加 bin 到最后。例如,这通常会打印 ~/.local (与 ~ 扩展到主目录的绝对路径),因此需要添加 ~/.local/bin 对你 PATH . 你可以设置你的 PATH 永久 modifying ~/.profile .

  • 在Windows上,您可以通过运行 py -m site --user-site 并更换 site-packages 具有 Scripts .例如,这可能返回 C:\Users\Username\AppData\Roaming\Python36\site-packages 所以你需要设置 PATH 包括 C:\Users\Username\AppData\Roaming\Python36\Scripts .您可以设置您的用户 PATH 永久在 Control Panel .您可能需要注销 PATH 更改生效。

需求文件

安装在 Requirements File .

pip install -r requirements.txt

从VCS安装

在“可编辑”模式下从VCS安装项目。有关语法的完整分解,请参阅pip的 VCS Support .

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安装 Development Mode 也就是说,以这样的方式,项目似乎已安装,但仍然可以从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

从其他来源安装

要从其他数据源(例如AmazonS3存储)安装,可以创建一个助手应用程序,该应用程序将数据显示在 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

1

在此上下文中,“安全”意味着使用现代浏览器或类似工具 curl 从HTTPS URL下载时验证SSL证书。

2

根据您的平台,这可能需要根或管理员访问权限。 pip 目前正在考虑将此更改为 making user installs the default behavior .

3

从python 3.4开始, venv (Stdlib替代 virtualenv )将使用 pip 预安装,从而使其成为 virtualenv .

4

在中接受了兼容的发布说明符 PEP 440 支持在年被释放。 setuptools V8.0和 pip v6.0