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

重要的是要注意,在此上下文中的术语“包”被用作分发的同义词(即要安装的软件包),而不是指您在Python源代码中导入的的类型(即一个模块的容器)。在Python社区中,通常使用术语“包” 来引用分发。使用术语“发行版”通常不是首选,因为它很容易与Linux发行版或其他较大的软件发行版(如Python本身)混淆

安装包的要求

本节介绍在安装其他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

  • 这将安装或升级pip。此外,如果它们尚未安装,它将安装setuptoolswheelpythonget-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及更高版本中将pipsetuptools安装 到创建的虚拟环境中。
  • 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没有找到要安装的模块,它将在本地构建一个轮子并将其缓存以供将来安装,而不是在将来重建源分发。

升级包

将已安装的SomeProjectPyPI 升级到最新版本。

pip install --upgrade SomeProject

修改pip国内源(window)

临时使用其他源的方法

pip install pythonModuleName -i https://pypi.douban.com/simpley

永久的方法,把源的地址固化到配置文件中:

1、在资源管理器的地址栏输入%appdata%后回车,进入文件夹;

2、新建一个pip文件夹,在pip文件夹里面新建一个配置文件pip.ini 

3、在配置文件中添加下面的内容

[global] 
timeout = 6000 
index-url = https://pypi.tuna.tsinghua.edu.cn/simple 
trusted-host = pypi.tuna.tsinghua.edu.cn

上面是清华源,还可以选择其他源地址,下面给出多个源地址,供大家选择:

  • 中国科学技术大学 : https://pypi.mirrors.ustc.edu.cn/simple
  • 豆瓣:http://pypi.douban.com/simple/
  • 阿里云:http://mirrors.aliyun.com/pypi/simple/

4、保存好后,重新使用pip即可安装包。

修改PIP的国内源(linux内核的系统,包括MAC,Ubuntu系统的方法相同

1、创建pip.conf文件

首先进入到.pip目录下

cd ~/.pip

如果不在~目录下,请输入

cd ~

进入~目录。

如果.pip目录不存在,则手工创建一个,并进入.pip目录

mkdir .pip  
cd ~/.pip

在.pip目录下创建pip.conf文件

touch pip.conf

2、编辑pip.conf

vi pip.conf

然后输入内容:

[global]
timeout = 60
index-url =  https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple/
extra-index-url = http://pypi.douban.com/simple/
https://pypi.anaconda.org/masdeseiscaracteres/simple

[install]
trusted-host=
    mirrors.tuna.tsinghua.edu.cn
    pypi.douban.com

上面是清华源作为主源,备用使用豆瓣和anaconda,还可以选择其他源地址,下面给出多个源地址,供大家选择:

  • 中国科学技术大学 : https://pypi.mirrors.ustc.edu.cn/simple
  • 阿里云:http://mirrors.aliyun.com/pypi/simple/

3、保存好后,重新使用pip即可安装包。

安装到用户站点

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

pip install --user SomeProject

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

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

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

  • 在Linux和macOS上,您可以通过运行并添加到结尾来查找用户库二进制目录 。例如,这通常会打印(扩展到主目录的绝对路径),因此您需要添加到您的 主目录。您可以通过修改〜/ .profile来永久设置。python -msite --user-basebin~/.local~~/.local/binPATHPATH
  • 在Windows上,你可以找到通过运行用户群二进制文件目录和更换用。例如,这可能会返回, 因此您需要设置包含 。您可以在“ 控制面板”中永久设置用户 。您可能需要注销才能使 更改生效。py -m site --user-sitesite-packagesScriptsC:\Users\Username\AppData\Roaming\Python36\site-packagesPATHC:\Users\Username\AppData\Roaming\Python36\ScriptsPATHPATH

根据需求文件下载文件包进行安装环境

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

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

从其他索引安装

新版要求使用https源,要注意。

清华:https://pypi.tuna.tsinghua.edu.cn/simple

中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/

阿里云:http://mirrors.aliyun.com/pypi/simple/

华中理工大学:http://pypi.hustunique.com/

山东理工大学:http://pypi.sdutlinux.org/

豆瓣:http://pypi.douban.com/simple/

从备用索引安装

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>

从本地存档安装

安装特定的源归档文件。如果以上方法出现错误的时候,可以直接从https://pypi.org/官方网站搜索下载相关包到本地,从本地进行安装,将解决很多包安装出错的问题。

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