399 lines
23 KiB
HTML
399 lines
23 KiB
HTML
|
||
<!DOCTYPE html>
|
||
|
||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||
<head>
|
||
<meta charset="utf-8" />
|
||
<title>Installing Python Modules — Python 3.7.4 documentation</title>
|
||
<link rel="stylesheet" href="../_static/pydoctheme.css" type="text/css" />
|
||
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
|
||
|
||
<script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
|
||
<script type="text/javascript" src="../_static/jquery.js"></script>
|
||
<script type="text/javascript" src="../_static/underscore.js"></script>
|
||
<script type="text/javascript" src="../_static/doctools.js"></script>
|
||
<script type="text/javascript" src="../_static/language_data.js"></script>
|
||
|
||
<script type="text/javascript" src="../_static/sidebar.js"></script>
|
||
|
||
<link rel="search" type="application/opensearchdescription+xml"
|
||
title="Search within Python 3.7.4 documentation"
|
||
href="../_static/opensearch.xml"/>
|
||
<link rel="author" title="About these documents" href="../about.html" />
|
||
<link rel="index" title="Index" href="../genindex.html" />
|
||
<link rel="search" title="Search" href="../search.html" />
|
||
<link rel="copyright" title="Copyright" href="../copyright.html" />
|
||
<link rel="next" title="Python HOWTOs" href="../howto/index.html" />
|
||
<link rel="prev" title="Distributing Python Modules" href="../distributing/index.html" />
|
||
<link rel="shortcut icon" type="image/png" href="../_static/py.png" />
|
||
<link rel="canonical" href="https://docs.python.org/3/installing/index.html" />
|
||
|
||
<script type="text/javascript" src="../_static/copybutton.js"></script>
|
||
<script type="text/javascript" src="../_static/switchers.js"></script>
|
||
|
||
|
||
|
||
<style>
|
||
@media only screen {
|
||
table.full-width-table {
|
||
width: 100%;
|
||
}
|
||
}
|
||
</style>
|
||
|
||
|
||
</head><body>
|
||
|
||
<div class="related" role="navigation" aria-label="related navigation">
|
||
<h3>Navigation</h3>
|
||
<ul>
|
||
<li class="right" style="margin-right: 10px">
|
||
<a href="../genindex.html" title="General Index"
|
||
accesskey="I">index</a></li>
|
||
<li class="right" >
|
||
<a href="../py-modindex.html" title="Python Module Index"
|
||
>modules</a> |</li>
|
||
<li class="right" >
|
||
<a href="../howto/index.html" title="Python HOWTOs"
|
||
accesskey="N">next</a> |</li>
|
||
<li class="right" >
|
||
<a href="../distributing/index.html" title="Distributing Python Modules"
|
||
accesskey="P">previous</a> |</li>
|
||
<li><img src="../_static/py.png" alt=""
|
||
style="vertical-align: middle; margin-top: -1px"/></li>
|
||
<li><a href="https://www.python.org/">Python</a> »</li>
|
||
<li>
|
||
<span class="language_switcher_placeholder">en</span>
|
||
<span class="version_switcher_placeholder">3.7.4</span>
|
||
<a href="../index.html">Documentation </a> »
|
||
</li>
|
||
|
||
<li class="right">
|
||
|
||
|
||
<div class="inline-search" style="display: none" role="search">
|
||
<form class="inline-search" action="../search.html" method="get">
|
||
<input placeholder="Quick search" type="text" name="q" />
|
||
<input type="submit" value="Go" />
|
||
<input type="hidden" name="check_keywords" value="yes" />
|
||
<input type="hidden" name="area" value="default" />
|
||
</form>
|
||
</div>
|
||
<script type="text/javascript">$('.inline-search').show(0);</script>
|
||
|
|
||
</li>
|
||
|
||
</ul>
|
||
</div>
|
||
|
||
<div class="document">
|
||
<div class="documentwrapper">
|
||
<div class="bodywrapper">
|
||
<div class="body" role="main">
|
||
|
||
<div class="section" id="installing-python-modules">
|
||
<span id="installing-index"></span><h1>Installing Python Modules<a class="headerlink" href="#installing-python-modules" title="Permalink to this headline">¶</a></h1>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Email</dt>
|
||
<dd class="field-odd"><p><a class="reference external" href="mailto:distutils-sig%40python.org">distutils-sig<span>@</span>python<span>.</span>org</a></p>
|
||
</dd>
|
||
</dl>
|
||
<p>As a popular open source development project, Python has an active
|
||
supporting community of contributors and users that also make their software
|
||
available for other Python developers to use under open source license terms.</p>
|
||
<p>This allows Python users to share and collaborate effectively, benefiting
|
||
from the solutions others have already created to common (and sometimes
|
||
even rare!) problems, as well as potentially contributing their own
|
||
solutions to the common pool.</p>
|
||
<p>This guide covers the installation part of the process. For a guide to
|
||
creating and sharing your own Python projects, refer to the
|
||
<a class="reference internal" href="../distributing/index.html#distributing-index"><span class="std std-ref">distribution guide</span></a>.</p>
|
||
<div class="admonition note">
|
||
<p class="admonition-title">Note</p>
|
||
<p>For corporate and other institutional users, be aware that many
|
||
organisations have their own policies around using and contributing to
|
||
open source software. Please take such policies into account when making
|
||
use of the distribution and installation tools provided with Python.</p>
|
||
</div>
|
||
<div class="section" id="key-terms">
|
||
<h2>Key terms<a class="headerlink" href="#key-terms" title="Permalink to this headline">¶</a></h2>
|
||
<ul class="simple">
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">pip</span></code> is the preferred installer program. Starting with Python 3.4, it
|
||
is included by default with the Python binary installers.</p></li>
|
||
<li><p>A <em>virtual environment</em> is a semi-isolated Python environment that allows
|
||
packages to be installed for use by a particular application, rather than
|
||
being installed system wide.</p></li>
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">venv</span></code> is the standard tool for creating virtual environments, and has
|
||
been part of Python since Python 3.3. Starting with Python 3.4, it
|
||
defaults to installing <code class="docutils literal notranslate"><span class="pre">pip</span></code> into all created virtual environments.</p></li>
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">virtualenv</span></code> is a third party alternative (and predecessor) to
|
||
<code class="docutils literal notranslate"><span class="pre">venv</span></code>. It allows virtual environments to be used on versions of
|
||
Python prior to 3.4, which either don’t provide <code class="docutils literal notranslate"><span class="pre">venv</span></code> at all, or
|
||
aren’t able to automatically install <code class="docutils literal notranslate"><span class="pre">pip</span></code> into created environments.</p></li>
|
||
<li><p>The <a class="reference external" href="https://pypi.org">Python Packaging Index</a> is a public
|
||
repository of open source licensed packages made available for use by
|
||
other Python users.</p></li>
|
||
<li><p>the <a class="reference external" href="https://www.pypa.io/">Python Packaging Authority</a> is the group of
|
||
developers and documentation authors responsible for the maintenance and
|
||
evolution of the standard packaging tools and the associated metadata and
|
||
file format standards. They maintain a variety of tools, documentation,
|
||
and issue trackers on both <a class="reference external" href="https://github.com/pypa">GitHub</a> and
|
||
<a class="reference external" href="https://bitbucket.org/pypa/">BitBucket</a>.</p></li>
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">distutils</span></code> is the original build and distribution system first added to
|
||
the Python standard library in 1998. While direct use of <code class="docutils literal notranslate"><span class="pre">distutils</span></code> is
|
||
being phased out, it still laid the foundation for the current packaging
|
||
and distribution infrastructure, and it not only remains part of the
|
||
standard library, but its name lives on in other ways (such as the name
|
||
of the mailing list used to coordinate Python packaging standards
|
||
development).</p></li>
|
||
</ul>
|
||
<div class="deprecated">
|
||
<p><span class="versionmodified deprecated">Deprecated since version 3.6: </span><code class="docutils literal notranslate"><span class="pre">pyvenv</span></code> was the recommended tool for creating virtual environments for
|
||
Python 3.3 and 3.4, and is <a class="reference external" href="https://docs.python.org/dev/whatsnew/3.6.html#deprecated-features">deprecated in Python 3.6</a>.</p>
|
||
</div>
|
||
<div class="versionchanged">
|
||
<p><span class="versionmodified changed">Changed in version 3.5: </span>The use of <code class="docutils literal notranslate"><span class="pre">venv</span></code> is now recommended for creating virtual environments.</p>
|
||
</div>
|
||
<div class="admonition seealso">
|
||
<p class="admonition-title">See also</p>
|
||
<p><a class="reference external" href="https://packaging.python.org/installing/#creating-virtual-environments">Python Packaging User Guide: Creating and using virtual environments</a></p>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="basic-usage">
|
||
<h2>Basic usage<a class="headerlink" href="#basic-usage" title="Permalink to this headline">¶</a></h2>
|
||
<p>The standard packaging tools are all designed to be used from the command
|
||
line.</p>
|
||
<p>The following command will install the latest version of a module and its
|
||
dependencies from the Python Packaging Index:</p>
|
||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>python -m pip install SomePackage
|
||
</pre></div>
|
||
</div>
|
||
<div class="admonition note">
|
||
<p class="admonition-title">Note</p>
|
||
<p>For POSIX users (including Mac OS X and Linux users), the examples in
|
||
this guide assume the use of a <a class="reference internal" href="../glossary.html#term-virtual-environment"><span class="xref std std-term">virtual environment</span></a>.</p>
|
||
<p>For Windows users, the examples in this guide assume that the option to
|
||
adjust the system PATH environment variable was selected when installing
|
||
Python.</p>
|
||
</div>
|
||
<p>It’s also possible to specify an exact or minimum version directly on the
|
||
command line. When using comparator operators such as <code class="docutils literal notranslate"><span class="pre">></span></code>, <code class="docutils literal notranslate"><span class="pre"><</span></code> or some other
|
||
special character which get interpreted by shell, the package name and the
|
||
version should be enclosed within double quotes:</p>
|
||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>python -m pip install SomePackage==1.0.4 # specific version
|
||
python -m pip install "SomePackage>=1.0.4" # minimum version
|
||
</pre></div>
|
||
</div>
|
||
<p>Normally, if a suitable module is already installed, attempting to install
|
||
it again will have no effect. Upgrading existing modules must be requested
|
||
explicitly:</p>
|
||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>python -m pip install --upgrade SomePackage
|
||
</pre></div>
|
||
</div>
|
||
<p>More information and resources regarding <code class="docutils literal notranslate"><span class="pre">pip</span></code> and its capabilities can be
|
||
found in the <a class="reference external" href="https://packaging.python.org">Python Packaging User Guide</a>.</p>
|
||
<p>Creation of virtual environments is done through the <a class="reference internal" href="../library/venv.html#module-venv" title="venv: Creation of virtual environments."><code class="xref py py-mod docutils literal notranslate"><span class="pre">venv</span></code></a> module.
|
||
Installing packages into an active virtual environment uses the commands shown
|
||
above.</p>
|
||
<div class="admonition seealso">
|
||
<p class="admonition-title">See also</p>
|
||
<p><a class="reference external" href="https://packaging.python.org/installing/">Python Packaging User Guide: Installing Python Distribution Packages</a></p>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="how-do-i">
|
||
<h2>How do I …?<a class="headerlink" href="#how-do-i" title="Permalink to this headline">¶</a></h2>
|
||
<p>These are quick answers or links for some common tasks.</p>
|
||
<div class="section" id="install-pip-in-versions-of-python-prior-to-python-3-4">
|
||
<h3>… install <code class="docutils literal notranslate"><span class="pre">pip</span></code> in versions of Python prior to Python 3.4?<a class="headerlink" href="#install-pip-in-versions-of-python-prior-to-python-3-4" title="Permalink to this headline">¶</a></h3>
|
||
<p>Python only started bundling <code class="docutils literal notranslate"><span class="pre">pip</span></code> with Python 3.4. For earlier versions,
|
||
<code class="docutils literal notranslate"><span class="pre">pip</span></code> needs to be “bootstrapped” as described in the Python Packaging
|
||
User Guide.</p>
|
||
<div class="admonition seealso">
|
||
<p class="admonition-title">See also</p>
|
||
<p><a class="reference external" href="https://packaging.python.org/installing/#requirements-for-installing-packages">Python Packaging User Guide: Requirements for Installing Packages</a></p>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="install-packages-just-for-the-current-user">
|
||
<h3>… install packages just for the current user?<a class="headerlink" href="#install-packages-just-for-the-current-user" title="Permalink to this headline">¶</a></h3>
|
||
<p>Passing the <code class="docutils literal notranslate"><span class="pre">--user</span></code> option to <code class="docutils literal notranslate"><span class="pre">python</span> <span class="pre">-m</span> <span class="pre">pip</span> <span class="pre">install</span></code> will install a
|
||
package just for the current user, rather than for all users of the system.</p>
|
||
</div>
|
||
<div class="section" id="install-scientific-python-packages">
|
||
<h3>… install scientific Python packages?<a class="headerlink" href="#install-scientific-python-packages" title="Permalink to this headline">¶</a></h3>
|
||
<p>A number of scientific Python packages have complex binary dependencies, and
|
||
aren’t currently easy to install using <code class="docutils literal notranslate"><span class="pre">pip</span></code> directly. At this point in
|
||
time, it will often be easier for users to install these packages by
|
||
<a class="reference external" href="https://packaging.python.org/science/">other means</a>
|
||
rather than attempting to install them with <code class="docutils literal notranslate"><span class="pre">pip</span></code>.</p>
|
||
<div class="admonition seealso">
|
||
<p class="admonition-title">See also</p>
|
||
<p><a class="reference external" href="https://packaging.python.org/science/">Python Packaging User Guide: Installing Scientific Packages</a></p>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="work-with-multiple-versions-of-python-installed-in-parallel">
|
||
<h3>… work with multiple versions of Python installed in parallel?<a class="headerlink" href="#work-with-multiple-versions-of-python-installed-in-parallel" title="Permalink to this headline">¶</a></h3>
|
||
<p>On Linux, Mac OS X, and other POSIX systems, use the versioned Python commands
|
||
in combination with the <code class="docutils literal notranslate"><span class="pre">-m</span></code> switch to run the appropriate copy of
|
||
<code class="docutils literal notranslate"><span class="pre">pip</span></code>:</p>
|
||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>python2 -m pip install SomePackage # default Python 2
|
||
python2.7 -m pip install SomePackage # specifically Python 2.7
|
||
python3 -m pip install SomePackage # default Python 3
|
||
python3.4 -m pip install SomePackage # specifically Python 3.4
|
||
</pre></div>
|
||
</div>
|
||
<p>Appropriately versioned <code class="docutils literal notranslate"><span class="pre">pip</span></code> commands may also be available.</p>
|
||
<p>On Windows, use the <code class="docutils literal notranslate"><span class="pre">py</span></code> Python launcher in combination with the <code class="docutils literal notranslate"><span class="pre">-m</span></code>
|
||
switch:</p>
|
||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>py -2 -m pip install SomePackage # default Python 2
|
||
py -2.7 -m pip install SomePackage # specifically Python 2.7
|
||
py -3 -m pip install SomePackage # default Python 3
|
||
py -3.4 -m pip install SomePackage # specifically Python 3.4
|
||
</pre></div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="common-installation-issues">
|
||
<h2>Common installation issues<a class="headerlink" href="#common-installation-issues" title="Permalink to this headline">¶</a></h2>
|
||
<div class="section" id="installing-into-the-system-python-on-linux">
|
||
<h3>Installing into the system Python on Linux<a class="headerlink" href="#installing-into-the-system-python-on-linux" title="Permalink to this headline">¶</a></h3>
|
||
<p>On Linux systems, a Python installation will typically be included as part
|
||
of the distribution. Installing into this Python installation requires
|
||
root access to the system, and may interfere with the operation of the
|
||
system package manager and other components of the system if a component
|
||
is unexpectedly upgraded using <code class="docutils literal notranslate"><span class="pre">pip</span></code>.</p>
|
||
<p>On such systems, it is often better to use a virtual environment or a
|
||
per-user installation when installing packages with <code class="docutils literal notranslate"><span class="pre">pip</span></code>.</p>
|
||
</div>
|
||
<div class="section" id="pip-not-installed">
|
||
<h3>Pip not installed<a class="headerlink" href="#pip-not-installed" title="Permalink to this headline">¶</a></h3>
|
||
<p>It is possible that <code class="docutils literal notranslate"><span class="pre">pip</span></code> does not get installed by default. One potential fix is:</p>
|
||
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>python -m ensurepip --default-pip
|
||
</pre></div>
|
||
</div>
|
||
<p>There are also additional resources for <a class="reference external" href="https://packaging.python.org/tutorials/installing-packages/#install-pip-setuptools-and-wheel">installing pip.</a></p>
|
||
</div>
|
||
<div class="section" id="installing-binary-extensions">
|
||
<h3>Installing binary extensions<a class="headerlink" href="#installing-binary-extensions" title="Permalink to this headline">¶</a></h3>
|
||
<p>Python has typically relied heavily on source based distribution, with end
|
||
users being expected to compile extension modules from source as part of
|
||
the installation process.</p>
|
||
<p>With the introduction of support for the binary <code class="docutils literal notranslate"><span class="pre">wheel</span></code> format, and the
|
||
ability to publish wheels for at least Windows and Mac OS X through the
|
||
Python Packaging Index, this problem is expected to diminish over time,
|
||
as users are more regularly able to install pre-built extensions rather
|
||
than needing to build them themselves.</p>
|
||
<p>Some of the solutions for installing <a class="reference external" href="https://packaging.python.org/science/">scientific software</a>
|
||
that are not yet available as pre-built <code class="docutils literal notranslate"><span class="pre">wheel</span></code> files may also help with
|
||
obtaining other binary extensions without needing to build them locally.</p>
|
||
<div class="admonition seealso">
|
||
<p class="admonition-title">See also</p>
|
||
<p><a class="reference external" href="https://packaging.python.org/extensions/">Python Packaging User Guide: Binary Extensions</a></p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
|
||
<div class="sphinxsidebarwrapper">
|
||
<h3><a href="../contents.html">Table of Contents</a></h3>
|
||
<ul>
|
||
<li><a class="reference internal" href="#">Installing Python Modules</a><ul>
|
||
<li><a class="reference internal" href="#key-terms">Key terms</a></li>
|
||
<li><a class="reference internal" href="#basic-usage">Basic usage</a></li>
|
||
<li><a class="reference internal" href="#how-do-i">How do I …?</a><ul>
|
||
<li><a class="reference internal" href="#install-pip-in-versions-of-python-prior-to-python-3-4">… install <code class="docutils literal notranslate"><span class="pre">pip</span></code> in versions of Python prior to Python 3.4?</a></li>
|
||
<li><a class="reference internal" href="#install-packages-just-for-the-current-user">… install packages just for the current user?</a></li>
|
||
<li><a class="reference internal" href="#install-scientific-python-packages">… install scientific Python packages?</a></li>
|
||
<li><a class="reference internal" href="#work-with-multiple-versions-of-python-installed-in-parallel">… work with multiple versions of Python installed in parallel?</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a class="reference internal" href="#common-installation-issues">Common installation issues</a><ul>
|
||
<li><a class="reference internal" href="#installing-into-the-system-python-on-linux">Installing into the system Python on Linux</a></li>
|
||
<li><a class="reference internal" href="#pip-not-installed">Pip not installed</a></li>
|
||
<li><a class="reference internal" href="#installing-binary-extensions">Installing binary extensions</a></li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
|
||
<h4>Previous topic</h4>
|
||
<p class="topless"><a href="../distributing/index.html"
|
||
title="previous chapter">Distributing Python Modules</a></p>
|
||
<h4>Next topic</h4>
|
||
<p class="topless"><a href="../howto/index.html"
|
||
title="next chapter">Python HOWTOs</a></p>
|
||
<div role="note" aria-label="source link">
|
||
<h3>This Page</h3>
|
||
<ul class="this-page-menu">
|
||
<li><a href="../bugs.html">Report a Bug</a></li>
|
||
<li>
|
||
<a href="https://github.com/python/cpython/blob/3.7/Doc/installing/index.rst"
|
||
rel="nofollow">Show Source
|
||
</a>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="clearer"></div>
|
||
</div>
|
||
<div class="related" role="navigation" aria-label="related navigation">
|
||
<h3>Navigation</h3>
|
||
<ul>
|
||
<li class="right" style="margin-right: 10px">
|
||
<a href="../genindex.html" title="General Index"
|
||
>index</a></li>
|
||
<li class="right" >
|
||
<a href="../py-modindex.html" title="Python Module Index"
|
||
>modules</a> |</li>
|
||
<li class="right" >
|
||
<a href="../howto/index.html" title="Python HOWTOs"
|
||
>next</a> |</li>
|
||
<li class="right" >
|
||
<a href="../distributing/index.html" title="Distributing Python Modules"
|
||
>previous</a> |</li>
|
||
<li><img src="../_static/py.png" alt=""
|
||
style="vertical-align: middle; margin-top: -1px"/></li>
|
||
<li><a href="https://www.python.org/">Python</a> »</li>
|
||
<li>
|
||
<span class="language_switcher_placeholder">en</span>
|
||
<span class="version_switcher_placeholder">3.7.4</span>
|
||
<a href="../index.html">Documentation </a> »
|
||
</li>
|
||
|
||
<li class="right">
|
||
|
||
|
||
<div class="inline-search" style="display: none" role="search">
|
||
<form class="inline-search" action="../search.html" method="get">
|
||
<input placeholder="Quick search" type="text" name="q" />
|
||
<input type="submit" value="Go" />
|
||
<input type="hidden" name="check_keywords" value="yes" />
|
||
<input type="hidden" name="area" value="default" />
|
||
</form>
|
||
</div>
|
||
<script type="text/javascript">$('.inline-search').show(0);</script>
|
||
|
|
||
</li>
|
||
|
||
</ul>
|
||
</div>
|
||
<div class="footer">
|
||
© <a href="../copyright.html">Copyright</a> 2001-2019, Python Software Foundation.
|
||
<br />
|
||
The Python Software Foundation is a non-profit corporation.
|
||
<a href="https://www.python.org/psf/donations/">Please donate.</a>
|
||
<br />
|
||
Last updated on Jul 13, 2019.
|
||
<a href="../bugs.html">Found a bug</a>?
|
||
<br />
|
||
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 2.0.1.
|
||
</div>
|
||
|
||
</body>
|
||
</html> |