Files
hustoj/web/python-docs/using/unix.html
2025-03-09 17:10:56 +08:00

387 lines
21 KiB
HTML
Raw Permalink 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.
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="zh_CN">
<head>
<meta charset="utf-8" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
<title>2. 在类Unix环境下使用Python &#8212; Python 3.8.20 文档</title><meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="../_static/pydoctheme.css" type="text/css" />
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<script id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script src="../_static/jquery.js"></script>
<script src="../_static/underscore.js"></script>
<script src="../_static/doctools.js"></script>
<script src="../_static/language_data.js"></script>
<script src="../_static/translations.js"></script>
<script src="../_static/sidebar.js"></script>
<link rel="search" type="application/opensearchdescription+xml"
title="在 Python 3.8.20 文档 中搜索"
href="../_static/opensearch.xml"/>
<link rel="author" title="关于这些文档" href="../about.html" />
<link rel="index" title="索引" href="../genindex.html" />
<link rel="search" title="搜索" href="../search.html" />
<link rel="copyright" title="版权所有" href="../copyright.html" />
<link rel="next" title="3. 在Windows上使用 Python" href="windows.html" />
<link rel="prev" title="1. 命令行与环境" href="cmdline.html" />
<link rel="canonical" href="https://docs.python.org/3/using/unix.html" />
<style>
@media only screen {
table.full-width-table {
width: 100%;
}
}
</style>
<link rel="shortcut icon" type="image/png" href="../_static/py.svg" />
<script type="text/javascript" src="../_static/copybutton.js"></script>
<script type="text/javascript" src="../_static/menu.js"></script>
</head>
<body>
<div class="mobile-nav">
<input type="checkbox" id="menuToggler" class="toggler__input" aria-controls="navigation"
aria-pressed="false" aria-expanded="false" role="button" aria-label="Menu" />
<label for="menuToggler" class="toggler__label">
<span></span>
</label>
<nav class="nav-content" role="navigation">
<a href="https://www.python.org/" class="nav-logo">
<img src="../_static/py.svg" alt="Logo"/>
</a>
<div class="version_switcher_placeholder"></div>
<form role="search" class="search" action="../search.html" method="get">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" class="search-icon">
<path fill-rule="nonzero"
d="M15.5 14h-.79l-.28-.27a6.5 6.5 0 001.48-5.34c-.47-2.78-2.79-5-5.59-5.34a6.505 6.505 0 00-7.27 7.27c.34 2.8 2.56 5.12 5.34 5.59a6.5 6.5 0 005.34-1.48l.27.28v.79l4.25 4.25c.41.41 1.08.41 1.49 0 .41-.41.41-1.08 0-1.49L15.5 14zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z" fill="#444"></path>
</svg>
<input type="text" name="q" aria-label="快速搜索"/>
<input type="submit" value="转向"/>
</form>
</nav>
<div class="menu-wrapper">
<nav class="menu" role="navigation" aria-label="main navigation">
<div class="language_switcher_placeholder"></div>
<h3><a href="../contents.html">目录</a></h3>
<ul>
<li><a class="reference internal" href="#">2. 在类Unix环境下使用Python</a><ul>
<li><a class="reference internal" href="#getting-and-installing-the-latest-version-of-python">2.1. 获得并安装Python的最新版本</a><ul>
<li><a class="reference internal" href="#on-linux">2.1.1. 在Linux中</a></li>
<li><a class="reference internal" href="#on-freebsd-and-openbsd">2.1.2. 在FreeBSD和OpenBSD上</a></li>
<li><a class="reference internal" href="#on-opensolaris">2.1.3. 在OpenSolaris系统上</a></li>
</ul>
</li>
<li><a class="reference internal" href="#building-python">2.2. 构建Python</a></li>
<li><a class="reference internal" href="#python-related-paths-and-files">2.3. 与Python相关的路径和文件</a></li>
<li><a class="reference internal" href="#miscellaneous">2.4. 杂项</a></li>
</ul>
</li>
</ul>
<h4>上一个主题</h4>
<p class="topless"><a href="cmdline.html"
title="上一章"><span class="section-number">1. </span>命令行与环境</a></p>
<h4>下一个主题</h4>
<p class="topless"><a href="windows.html"
title="下一章"><span class="section-number">3. </span>在Windows上使用 Python</a></p>
<div role="note" aria-label="source link">
<h3>本页</h3>
<ul class="this-page-menu">
<li><a href="../bugs.html">报告 Bug</a></li>
<li>
<a href="https://github.com/python/cpython/blob/3.8/Doc/using/unix.rst"
rel="nofollow">显示源代码
</a>
</li>
</ul>
</div>
</nav>
</div>
</div>
<div id="outdated-warning" style="padding: .5em; text-align: center; background-color: #FFBABA; color: #6A0E0E;">
这个文档所针对的是一个已不再受支持的 Python 旧版本。
你应当升级版本,并阅读
<a href="/3/using/unix.html"> Python 当前稳定版本的文档</a>.
</div>
<div class="related" role="navigation" aria-label="related navigation">
<h3>导航</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../genindex.html" title="总目录"
accesskey="I">索引</a></li>
<li class="right" >
<a href="../py-modindex.html" title="Python 模块索引"
>模块</a> |</li>
<li class="right" >
<a href="windows.html" title="3. 在Windows上使用 Python"
accesskey="N">下一页</a> |</li>
<li class="right" >
<a href="cmdline.html" title="1. 命令行与环境"
accesskey="P">上一页</a> |</li>
<li><img src="../_static/py.svg" alt="python logo" style="vertical-align: middle; margin-top: -1px"/></li>
<li><a href="https://www.python.org/">Python</a> &#187;</li>
<li class="switchers">
<div class="language_switcher_placeholder"></div>
<div class="version_switcher_placeholder"></div>
</li>
<li>
</li>
<li id="cpython-language-and-version">
<a href="../index.html">3.8.20 Documentation</a> &#187;
</li>
<li class="nav-item nav-item-1"><a href="index.html" accesskey="U">Python安装和使用</a> &#187;</li>
<li class="right">
<div class="inline-search" role="search">
<form class="inline-search" action="../search.html" method="get">
<input placeholder="快速搜索" aria-label="快速搜索" type="text" name="q" />
<input type="submit" value="转向" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
|
</li>
</ul>
</div>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<section id="using-python-on-unix-platforms">
<span id="using-on-unix"></span><h1><span class="section-number">2. </span>在类Unix环境下使用Python<a class="headerlink" href="#using-python-on-unix-platforms" title="永久链接至标题"></a></h1>
<section id="getting-and-installing-the-latest-version-of-python">
<h2><span class="section-number">2.1. </span>获得并安装Python的最新版本<a class="headerlink" href="#getting-and-installing-the-latest-version-of-python" title="永久链接至标题"></a></h2>
<section id="on-linux">
<h3><span class="section-number">2.1.1. </span>在Linux中<a class="headerlink" href="#on-linux" title="永久链接至标题"></a></h3>
<p>Python预装在大多数Linux发行版上并作为一个包提供给所有其他用户。 但是您可能想要使用的某些功能在发行版提供的软件包中不可用。这时您可以从源代码轻松编译最新版本的Python。</p>
<p>如果Python没有预先安装并且不在发行版提供的库中您可以轻松地为自己使用的发行版创建包。 参阅以下链接:</p>
<div class="admonition seealso">
<p class="admonition-title">参见</p>
<dl class="simple">
<dt><a class="reference external" href="https://www.debian.org/doc/manuals/maint-guide/first.en.html">https://www.debian.org/doc/manuals/maint-guide/first.en.html</a></dt><dd><p>对于Debian用户</p>
</dd>
<dt><a class="reference external" href="https://en.opensuse.org/Portal:Packaging">https://en.opensuse.org/Portal:Packaging</a></dt><dd><p>对于OpenSuse用户</p>
</dd>
<dt><a class="reference external" href="https://docs-old.fedoraproject.org/en-US/Fedora_Draft_Documentation/0.1/html/RPM_Guide/ch-creating-rpms.html">https://docs-old.fedoraproject.org/en-US/Fedora_Draft_Documentation/0.1/html/RPM_Guide/ch-creating-rpms.html</a></dt><dd><p>对于Fedora用户</p>
</dd>
<dt><a class="reference external" href="http://www.slackbook.org/html/package-management-making-packages.html">http://www.slackbook.org/html/package-management-making-packages.html</a></dt><dd><p>对于Slackware用户</p>
</dd>
</dl>
</div>
</section>
<section id="on-freebsd-and-openbsd">
<h3><span class="section-number">2.1.2. </span>在FreeBSD和OpenBSD上<a class="headerlink" href="#on-freebsd-and-openbsd" title="永久链接至标题"></a></h3>
<ul>
<li><p>FreeBSD用户使用以下命令添加包:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>pkg<span class="w"> </span>install<span class="w"> </span>python3
</pre></div>
</div>
</li>
<li><p>OpenBSD用户使用以下命令添加包:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>pkg_add<span class="w"> </span>-r<span class="w"> </span>python
pkg_add<span class="w"> </span>ftp://ftp.openbsd.org/pub/OpenBSD/4.2/packages/&lt;insert<span class="w"> </span>your<span class="w"> </span>architecture<span class="w"> </span>here&gt;/python-&lt;version&gt;.tgz
</pre></div>
</div>
<p>例如i386用户获取Python 2.5.1的可用版本:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>pkg_add<span class="w"> </span>ftp://ftp.openbsd.org/pub/OpenBSD/4.2/packages/i386/python-2.5.1p2.tgz
</pre></div>
</div>
</li>
</ul>
</section>
<section id="on-opensolaris">
<h3><span class="section-number">2.1.3. </span>在OpenSolaris系统上<a class="headerlink" href="#on-opensolaris" title="永久链接至标题"></a></h3>
<p>你可以从 <a class="reference external" href="https://www.opencsw.org/">OpenCSW</a> 获取、安装及使用各种版本的Python。比如 <code class="docutils literal notranslate"><span class="pre">pkgutil</span> <span class="pre">-i</span> <span class="pre">python27</span></code></p>
</section>
</section>
<section id="building-python">
<span id="building-python-on-unix"></span><h2><span class="section-number">2.2. </span>构建Python<a class="headerlink" href="#building-python" title="永久链接至标题"></a></h2>
<p>如果你想自己编译CPython首先要做的是获取 <a class="reference external" href="https://www.python.org/downloads/source/">source</a> 。您可以下载最新版本的源代码,也可以直接提取最新的 <a class="reference external" href="https://devguide.python.org/setup/#getting-the-source-code">clone</a> 。 (如果你想要制作补丁,则需要克隆代码。)</p>
<p>构建过程由常用命令组成:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>./configure
make
make<span class="w"> </span>install
</pre></div>
</div>
<p>特定Unix平台的配置选项和注意事项通常记录在Python源代码的根目录下的 <a class="reference external" href="https://github.com/python/cpython/tree/3.8/README.rst">README.rst</a> 文件中。</p>
<div class="admonition warning">
<p class="admonition-title">警告</p>
<p><code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">install</span></code> 可以覆盖或伪装 <code class="file docutils literal notranslate"><span class="pre">python3</span></code> 二进制文件。因此,建议使用 <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">altinstall</span></code> 而不是 <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">install</span></code> ,因为后者只安装了 <code class="file docutils literal notranslate"><em><span class="pre">exec_prefix</span></em><span class="pre">/bin/python</span><em><span class="pre">version</span></em></code></p>
</div>
</section>
<section id="python-related-paths-and-files">
<h2><span class="section-number">2.3. </span>与Python相关的路径和文件<a class="headerlink" href="#python-related-paths-and-files" title="永久链接至标题"></a></h2>
<p>这取决于本地安装惯例; <span class="target" id="index-6"></span><code class="xref std std-envvar docutils literal notranslate"><span class="pre">prefix</span></code> <code class="docutils literal notranslate"><span class="pre">${prefix}</span></code> )和 <span class="target" id="index-7"></span><code class="xref std std-envvar docutils literal notranslate"><span class="pre">exec_prefix</span></code> <code class="docutils literal notranslate"><span class="pre">${exec_prefix}</span></code> 取决于安装应解释为GNU软件它们可能相同。</p>
<p>例如在大多数Linux系统上两者的默认值是 <code class="file docutils literal notranslate"><span class="pre">/usr</span></code></p>
<table class="docutils align-default">
<colgroup>
<col style="width: 53%" />
<col style="width: 47%" />
</colgroup>
<thead>
<tr class="row-odd"><th class="head"><p>文件/目录</p></th>
<th class="head"><p>含义</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p><code class="file docutils literal notranslate"><em><span class="pre">exec_prefix</span></em><span class="pre">/bin/python3</span></code></p></td>
<td><p>解释器的推荐位置</p></td>
</tr>
<tr class="row-odd"><td><p><code class="file docutils literal notranslate"><em><span class="pre">prefix</span></em><span class="pre">/lib/python</span><em><span class="pre">version</span></em></code>,
<code class="file docutils literal notranslate"><em><span class="pre">exec_prefix</span></em><span class="pre">/lib/python</span><em><span class="pre">version</span></em></code></p></td>
<td><p>包含标准模块的目录的推荐位置</p></td>
</tr>
<tr class="row-even"><td><p><code class="file docutils literal notranslate"><em><span class="pre">prefix</span></em><span class="pre">/include/python</span><em><span class="pre">version</span></em></code>,
<code class="file docutils literal notranslate"><em><span class="pre">exec_prefix</span></em><span class="pre">/include/python</span><em><span class="pre">version</span></em></code></p></td>
<td><p>包含开发Python扩展和嵌入解释器所需的include文件的目录的推荐位置</p></td>
</tr>
</tbody>
</table>
</section>
<section id="miscellaneous">
<h2><span class="section-number">2.4. </span>杂项<a class="headerlink" href="#miscellaneous" title="永久链接至标题"></a></h2>
<p>要在Unix上使用Python脚本需要添加可执行权限例如</p>
<div class="highlight-shell-session notranslate"><div class="highlight"><pre><span></span><span class="gp">$ </span>chmod<span class="w"> </span>+x<span class="w"> </span>script
</pre></div>
</div>
<p>并在脚本的顶部放置一个合适的Shebang线。一个很好的选择通常是:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span><span class="ch">#!/usr/bin/env python3</span>
</pre></div>
</div>
<p>将在整个 <span class="target" id="index-8"></span><code class="xref std std-envvar docutils literal notranslate"><span class="pre">PATH</span></code> 中搜索Python解释器。但是某些Unix系统可能没有 <strong class="program">env</strong> 命令,因此可能需要将 <code class="docutils literal notranslate"><span class="pre">/usr/bin/python3</span></code> 硬编码为解释器路径。</p>
<p>要在Python脚本中使用shell命令请查看 <a class="reference internal" href="../library/subprocess.html#module-subprocess" title="subprocess: Subprocess management."><code class="xref py py-mod docutils literal notranslate"><span class="pre">subprocess</span></code></a> 模块。</p>
</section>
</section>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<h3><a href="../contents.html">目录</a></h3>
<ul>
<li><a class="reference internal" href="#">2. 在类Unix环境下使用Python</a><ul>
<li><a class="reference internal" href="#getting-and-installing-the-latest-version-of-python">2.1. 获得并安装Python的最新版本</a><ul>
<li><a class="reference internal" href="#on-linux">2.1.1. 在Linux中</a></li>
<li><a class="reference internal" href="#on-freebsd-and-openbsd">2.1.2. 在FreeBSD和OpenBSD上</a></li>
<li><a class="reference internal" href="#on-opensolaris">2.1.3. 在OpenSolaris系统上</a></li>
</ul>
</li>
<li><a class="reference internal" href="#building-python">2.2. 构建Python</a></li>
<li><a class="reference internal" href="#python-related-paths-and-files">2.3. 与Python相关的路径和文件</a></li>
<li><a class="reference internal" href="#miscellaneous">2.4. 杂项</a></li>
</ul>
</li>
</ul>
<h4>上一个主题</h4>
<p class="topless"><a href="cmdline.html"
title="上一章"><span class="section-number">1. </span>命令行与环境</a></p>
<h4>下一个主题</h4>
<p class="topless"><a href="windows.html"
title="下一章"><span class="section-number">3. </span>在Windows上使用 Python</a></p>
<div role="note" aria-label="source link">
<h3>本页</h3>
<ul class="this-page-menu">
<li><a href="../bugs.html">报告 Bug</a></li>
<li>
<a href="https://github.com/python/cpython/blob/3.8/Doc/using/unix.rst"
rel="nofollow">显示源代码
</a>
</li>
</ul>
</div>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="related" role="navigation" aria-label="related navigation">
<h3>导航</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../genindex.html" title="总目录"
>索引</a></li>
<li class="right" >
<a href="../py-modindex.html" title="Python 模块索引"
>模块</a> |</li>
<li class="right" >
<a href="windows.html" title="3. 在Windows上使用 Python"
>下一页</a> |</li>
<li class="right" >
<a href="cmdline.html" title="1. 命令行与环境"
>上一页</a> |</li>
<li><img src="../_static/py.svg" alt="python logo" style="vertical-align: middle; margin-top: -1px"/></li>
<li><a href="https://www.python.org/">Python</a> &#187;</li>
<li class="switchers">
<div class="language_switcher_placeholder"></div>
<div class="version_switcher_placeholder"></div>
</li>
<li>
</li>
<li id="cpython-language-and-version">
<a href="../index.html">3.8.20 Documentation</a> &#187;
</li>
<li class="nav-item nav-item-1"><a href="index.html" >Python安装和使用</a> &#187;</li>
<li class="right">
<div class="inline-search" role="search">
<form class="inline-search" action="../search.html" method="get">
<input placeholder="快速搜索" aria-label="快速搜索" type="text" name="q" />
<input type="submit" value="转向" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
|
</li>
</ul>
</div>
<div class="footer">
&copy; <a href="../copyright.html">版权所有</a> 2001-2024, Python Software Foundation.
<br />
This page is licensed under the Python Software Foundation License Version 2.
<br />
Examples, recipes, and other code in the documentation are additionally licensed under the Zero Clause BSD License.
<br />
<br />
The Python Software Foundation is a non-profit corporation.
<a href="https://www.python.org/psf/donations/">Please donate.</a>
<br />
<br />
最后更新于 12月 09, 2024.
<a href="https://docs.python.org/3/bugs.html">Found a bug</a>?
<br />
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 2.4.4.
</div>
</body>
</html>