mirror of
https://github.com/fofolee/uTools-Manuals.git
synced 2025-06-08 23:14:06 +08:00
3 lines
11 KiB
HTML
3 lines
11 KiB
HTML
<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"><dir></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> <code class="descname">版本 T1> <span class="sig-paren">( T2> <span class="sig-paren">) T3> </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> |