Python安装及包或模块pip安装详细教程
本节介绍如何安装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安装不同)。
确保你可以在命令行中运行PIP
您可以通过运行来检查:
pip --version
如果您从源代码安装了Python,使用python.org的安装程序或者通过Homebrew安装了Python,那么您应该已经拥有了pip。如果您使用的是Linux软件包并使用操作系统软件包管理器进行安装,则可能需要单独安装pip,请参阅使用Linux软件包管理器安装pip / setuptools / wheel。
如果pip
尚未安装,则首先尝试从标准库引导它:
python -m ensurepip --default-pip
如果仍然不允许你运行pip
:
确保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"
安装一个版本 与某个版本 “兼容”: [4]
pip install "SomeProject~=1.4.2"
在这种情况下,这意味着安装任何版本“== 1.4。*”版本也是“> = 1.4.2”。
源分布与模块
pip可以从 Source Distributions(sdist)或 Wheels安装,但如果两者都存在于PyPI上,则pip将更喜欢兼容的wheel。
轮子是预先构建的分发格式,与源分发(sdist)相比,提供更快的安装,特别是当项目包含已编译的扩展时。
如果pip没有找到要安装的模块,它将在本地构建一个轮子并将其缓存以供将来安装,而不是在将来重建源分发。
修改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-base
bin
~/.local
~
~/.local/bin
PATH
PATH
- 在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
PATH
根据需求文件下载文件包进行安装环境
安装需求文件中指定的需求列表。
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
安装setuptools extras。
$ pip install SomePackage[PDF]
$ pip install SomePackage[PDF]==3.0
$ pip install -e .[PDF]==3.0 # editable project in current directory