uTools-Manuals/docs/python/ensurepip.html
2019-04-21 11:50:48 +08:00

3 lines
11 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<div class="body" role="main"><div class="section" id="module-ensurepip"><h1><span class="yiyi-st" id="yiyi-10">28.2. <a class="reference internal" href="#module-ensurepip" title='ensurepip: Bootstrapping the "pip" installer into an existing Python installation or virtual environment.'><code class="xref py py-mod docutils literal"><span class="pre">ensurepip</span></code></a> - 引导<code class="docutils literal"><span class="pre">pip</span></code>安装程序</span></h1><div class="versionadded"><p><span class="yiyi-st" id="yiyi-11"><span class="versionmodified">版本3.4中的新功能。</span></span></p></div><p><span class="yiyi-st" id="yiyi-12"><a class="reference internal" href="#module-ensurepip" title='ensurepip: Bootstrapping the "pip" installer into an existing Python installation or virtual environment.'><code class="xref py py-mod docutils literal"><span class="pre">ensurepip</span></code></a>包支持将<code class="docutils literal"><span class="pre">pip</span></code>安装程序引导到现有的Python安装或虚拟环境中。</span><span class="yiyi-st" id="yiyi-13">这种引导方法反映了以下事实:<code class="docutils literal"><span class="pre">pip</span></code>是一个具有自己的发布周期的独立项目最新的可用稳定版本与CPython参考解释器的维护和功能版本捆绑在一起。</span></p><p><span class="yiyi-st" id="yiyi-14">在大多数情况下Python的最终用户不需要直接调用这个模块因为<code class="docutils literal"><span class="pre">pip</span></code>应该默认是自举的),但如果安装<code class="docutils literal"><span class="pre">pip</span></code>在安装Python时或在创建虚拟环境时或在明确卸载<code class="docutils literal"><span class="pre">pip</span></code>之后跳过。</span></p><div class="admonition note"><p class="first admonition-title"><span class="yiyi-st" id="yiyi-15">注意</span></p><p class="last"><span class="yiyi-st" id="yiyi-16">此模块<em>不会</em>访问互联网。</span><span class="yiyi-st" id="yiyi-17">引导<code class="docutils literal"><span class="pre">pip</span></code>所需的所有组件都作为包的内部部分包括在内。</span></p></div><div class="admonition seealso"><p class="first admonition-title"><span class="yiyi-st" id="yiyi-18">也可以看看</span></p><dl class="last docutils"><dt><span class="yiyi-st" id="yiyi-19"><a class="reference internal" href="../installing/index.html#installing-index"><span>Installing Python Modules</span></a></span></dt><dd><span class="yiyi-st" id="yiyi-20">用于安装Python软件包的最终用户指南</span></dd><dt><span class="yiyi-st" id="yiyi-21"><span class="target" id="index-0"></span> <a class="pep reference external" href="https://www.python.org/dev/peps/pep-0453"><strong>PEP 453</strong></a>在Python安装中显式引导pip</span></dt><dd><span class="yiyi-st" id="yiyi-22">这个模块的原始理由和规范。</span></dd></dl></div><div class="section" id="command-line-interface"><h2><span class="yiyi-st" id="yiyi-23">28.2.1. </span><span class="yiyi-st" id="yiyi-24">命令行界面</span></h2><p><span class="yiyi-st" id="yiyi-25">使用解释器的<code class="docutils literal"><span class="pre">-m</span></code>开关调用命令行接口。</span></p><p><span class="yiyi-st" id="yiyi-26">最简单的调用是:</span></p><pre><code class="language-python"><span></span><span class="n">python</span> <span class="o">-</span><span class="n">m</span> <span class="n">ensurepip</span>
</code></pre><p><span class="yiyi-st" id="yiyi-27">此调用将安装<code class="docutils literal"><span class="pre">pip</span></code>(如果尚未安装),否则什么也不做。</span><span class="yiyi-st" id="yiyi-28">要确保<code class="docutils literal"><span class="pre">pip</span></code>的安装版本至少与<code class="docutils literal"><span class="pre">ensurepip</span></code>捆绑在一起的版本一致,请传递<code class="docutils literal"><span class="pre">--upgrade</span></code>选项:</span></p><pre><code class="language-python"><span></span><span class="n">python</span> <span class="o">-</span><span class="n">m</span> <span class="n">ensurepip</span> <span class="o">--</span><span class="n">upgrade</span>
</code></pre><p><span class="yiyi-st" id="yiyi-29">默认情况下,<code class="docutils literal"><span class="pre">pip</span></code>安装到当前虚拟环境(如果有活动)或系统站点包(如果没有活动的虚拟环境)。</span><span class="yiyi-st" id="yiyi-30">可以通过两个附加的命令行选项控制安装位置:</span></p><ul class="simple"><li><span class="yiyi-st" id="yiyi-31"><code class="docutils literal"><span class="pre">--root</span> <span class="pre">&lt;dir&gt;</span></code>: Installs <code class="docutils literal"><span class="pre">pip</span></code> relative to the given root directory rather than the root of the currently active virtual environment (if any) or the default root for the current Python installation.</span></li><li><span class="yiyi-st" id="yiyi-32"><code class="docutils literal"><span class="pre">--user</span></code>:将<code class="docutils literal"><span class="pre">pip</span></code>安装到用户站点包目录中而不是全局地安装当前Python安装在活动虚拟环境中不允许使用此选项。</span></li></ul><p><span class="yiyi-st" id="yiyi-33">默认情况下,将安装脚本<code class="docutils literal"><span class="pre">pipX</span></code><code class="docutils literal"><span class="pre">pipX.Y</span></code>其中X.Y表示用于调用<code class="docutils literal"><span class="pre">ensurepip</span></code>的Python版本</span><span class="yiyi-st" id="yiyi-34">可以通过两个附加的命令行选项控制安装的脚本:</span></p><ul><li><p class="first"><span class="yiyi-st" id="yiyi-35"><code class="docutils literal"><span class="pre">--altinstall</span></code>:如果请求替代安装,<code class="docutils literal"><span class="pre">pipX</span></code>脚本将不会安装<em></em></span></p></li><li><dl class="first docutils"><dt><span class="yiyi-st" id="yiyi-36"><code class="docutils literal"><span class="pre">--default-pip</span></code>如果请求安装“default pip”</span></dt><dd><p class="first last"><span class="yiyi-st" id="yiyi-37">除了两个常规脚本之外,还将安装<code class="docutils literal"><span class="pre">pip</span></code>脚本。</span></p></dd></dl></li></ul><p><span class="yiyi-st" id="yiyi-38">提供这两个脚本选择选项将触发异常。</span></p></div><div class="section" id="module-api"><h2><span class="yiyi-st" id="yiyi-39">28.2.2. </span><span class="yiyi-st" id="yiyi-40">模块API </span></h2><p><span class="yiyi-st" id="yiyi-41"><a class="reference internal" href="#module-ensurepip" title='ensurepip: Bootstrapping the "pip" installer into an existing Python installation or virtual environment.'><code class="xref py py-mod docutils literal"><span class="pre">ensurepip</span></code></a>显示两个程序化使用的函数:</span></p><dl class="function"><dt id="ensurepip.version"><span class="yiyi-st" id="yiyi-42"><code class="descclassname"> ensurepip。 T0&gt; <code class="descname">版本 T1&gt; <span class="sig-paren"> T2&gt; <span class="sig-paren"> T3&gt; </span></span></code></code></span></dt><dd><p><span class="yiyi-st" id="yiyi-43">返回一个字符串指定在引导环境时将安装的pip的捆绑版本。</span></p></dd></dl><dl class="function"><dt id="ensurepip.bootstrap"><span class="yiyi-st" id="yiyi-44"> <code class="descclassname">ensurepip.</code><code class="descname">bootstrap</code><span class="sig-paren">(</span><em>root=None</em>, <em>upgrade=False</em>, <em>user=False</em>, <em>altinstall=False</em>, <em>default_pip=False</em>, <em>verbosity=0</em><span class="sig-paren">)</span></span></dt><dd><p><span class="yiyi-st" id="yiyi-45">引导<code class="docutils literal"><span class="pre">pip</span></code>进入当前或指定的环境。</span></p><p><span class="yiyi-st" id="yiyi-46"><em>root</em>指定要相对于其安装的备用根目录。</span><span class="yiyi-st" id="yiyi-47">如果<em>root</em>为无,则安装将使用当前环境的默认安装位置。</span></p><p><span class="yiyi-st" id="yiyi-48"><em>upgrade</em>指示是否将<code class="docutils literal"><span class="pre">pip</span></code>的早期版本的现有安装升级到捆绑版本。</span></p><p><span class="yiyi-st" id="yiyi-49"><em>用户</em>指示是否使用用户方案,而不是全局安装。</span></p><p><span class="yiyi-st" id="yiyi-50">默认情况下,将安装脚本<code class="docutils literal"><span class="pre">pipX</span></code><code class="docutils literal"><span class="pre">pipX.Y</span></code>其中X.Y代表当前版本的Python</span></p><p><span class="yiyi-st" id="yiyi-51">如果设置<em>altinstall</em>,则<code class="docutils literal"><span class="pre">pipX</span></code><em></em>安装。</span></p><p><span class="yiyi-st" id="yiyi-52">如果设置了<em>default_pip</em>,则除了两个常规脚本之外还将安装<code class="docutils literal"><span class="pre">pip</span></code></span></p><p><span class="yiyi-st" id="yiyi-53">同时设置<em>altinstall</em><em>default_pip</em>会触发<a class="reference internal" href="exceptions.html#ValueError" title="ValueError"><code class="xref py py-exc docutils literal"><span class="pre">ValueError</span></code></a></span></p><p><span class="yiyi-st" id="yiyi-54"><em>verbosity</em>控制从引导操作到<a class="reference internal" href="sys.html#sys.stdout" title="sys.stdout"><code class="xref py py-data docutils literal"><span class="pre">sys.stdout</span></code></a>的输出级别。</span></p><div class="admonition note"><p class="first admonition-title"><span class="yiyi-st" id="yiyi-55">注意</span></p><p class="last"><span class="yiyi-st" id="yiyi-56">引导过程对<code class="docutils literal"><span class="pre">sys.path</span></code><code class="docutils literal"><span class="pre">os.environ</span></code>都有副作用。</span><span class="yiyi-st" id="yiyi-57">在子进程中调用命令行接口可以避免这些副作用。</span></p></div><div class="admonition note"><p class="first admonition-title"><span class="yiyi-st" id="yiyi-58">注意</span></p><p class="last"><span class="yiyi-st" id="yiyi-59">引导过程可以安装<code class="docutils literal"><span class="pre">pip</span></code>所需的附加模块,但是其他软件不应该假定这些依赖性将默认存在(因为依赖性可以在<code class="docutils literal"><span class="pre">pip</span></code></span></p></div></dd></dl></div></div></div>