Installing Packages in Python
It's critical to understand that the term "package" here refers to a collection of software that must be installed (i.e. as a synonym for a distribution). It has nothing to do with the sort of package you import into your Python source code (i.e. a container of modules). The word "package" is commonly used in the Python community to refer to a distribution of code. There are those who prefer not to use the term "distribution" since it might be mistaken with a Linux distribution or another larger software distribution like Python itself.
Ensure that you can execute Python from the command line
Make sure you have Python installed and that the expected version is available from the command line before you continue. You may verify this by using the following command on your computer:
You should see something similar to Python 3.6.3 as a result. Please download Python 3.x from python.org or see the Hitchhiker's Guide to Python's Installing Python section if you do not have it already installed.
Note If it’s a newbie and that person may error similar to this:
>>> python --version Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'python' is not defined
This is because the instructions in this article are designed to be performed in a shell (also called a terminal or console). This lesson will teach you how to use your operating system's shell and how to communicate with Python.
Note: In an extended shell, such as IPython or the Jupyter notebook, system commands like those in this article can be prefaced by a Character run:
In : import sys
Instead of using simple python, use sys.executable to guarantee that commands are executed in the Python installation that matches the current notebook.
Note this tutorial's python command and python3 -m pip - user command should be replaced with their Python 3 equivalents due to the way Linux distributions are managing the Python 3 migration. Users using the system Python should first create a virtual environment before continuing with the lesson. If you encounter a permissions problem while following this guide, return to the section on establishing virtual environments, put one up, and then follow the steps as stated.
Ensure you can run pip from the command line
Additionally, you’ll need to make sure you have pip available. You can check this by running:
py -m pip --version
It's likely that pip is already present if you installed Python via a source installation, an installer from python.org, or Homebrew. You may have to install pip individually if you're using Linux and the OS package management; see installing pip/setuptools/wheel with Linux Package Managers for more information.
Try installing pip from the standard library first if it isn't already there, then:
py -m ensurepip --default-pip
This should allow you to use pip instead of python -m.
Download get-pip.py safely and securely
Run the Python script get-pip.py. 2 This command will set up or upgrade pip as needed. Additionally, if setup tools and wheel aren't already installed, it will do it now.
Warning If your operating system or another package management manages your Python installation, proceed with caution. get-pip.py is incompatible with these other utilities and may cause havoc on your system. To install in /usr/local, use python get-pip.py —prefix=/usr/local/ instead of pip.
Make certain that pip, setuptools, and wheel are up to current.
Up-to-date versions of the setuptools and wheel projects are helpful to guarantee that you can also install from source archives, even if you just use pip.
py -m pip install --upgrade pip setuptools wheel
Creating a fictitious setting if desired.
For more information, see the section below, but here is how to run venv 3 on a normal Linux system:
py -m venv tutorial_env tutorial_env\Scripts\activate
This will build a new virtual environment in the tutorial env directory and set up the current shell to utilise it as the default Python environment.
Creating Virtual Environments
To avoid having to install Python packages everywhere, "Virtual Environments" in Python let you install them only where they're needed. See installing stand-alone command line tools for information on how to do so securely.
Assume you have a programme that requires LibFoo version 1 while another programme requires version 2. What's the difference between the two? You may accidentally update a programme that should not be upgraded if you install everything into /usr/lib/python3.6/site-packages (or wherever your platform's normal installation directory is).
Alternatively, what if you just want to install an app and forget about it? If an application is functioning, any change to its libraries or to the versions of those libraries will cause it to malfunction.
Also, what happens if you are unable to place packages in the global site-packages directory? You could do this, for example, if the host is shared.
Python virtual environments may currently be created with one of two tools:
Pip and setuptools are automatically installed in newly generated virtual environments in Python 3.4 and later when using venv, which is included by default in those versions of Python.
Although virtualenv must be installed separately, it supports Python 2.7 and Python 3.3, and pip, setuptools, and wheel are always included in newly generated virtual environments by default (regardless of Python version).
The fundamental way to use it is as follows:
py -m venv <DIR>
The usage of source under Unix shells ensures that the variables of the virtual environment are set within the current shell and not in a subprocess (which then disappears, having no useful effect).
Windows users should _not_ use the source command in either of the examples above, but should instead execute the activate script from the command shell as follows:
It may be hard to keep track of numerous virtual environments manually, therefore the dependency management lesson presents a higher level tool, Pipenv, that keeps track of a distinct virtual environment for each project and application you work on.
Installing from PyPI
Most people use pip to install packages from the Python Package Index by specifying a set of requirements before they run an install command. An optional version specifier follows the project name in a requirement specifier. PEP 440 includes a complete list of all presently supported specifiers. Here are a few real-world instances.
The most recent version of "SomeProject" may be installed by following these steps:
py -m pip install "SomeProject"
To install a specific version:
py -m pip install "SomeProject==1.4"
To install greater than or equal to one version and less than another:
py -m pip install "SomeProject>=1,<2"
Source Distributions vs Wheels
While pip may install from either Source Distributions (sdist) or Wheels, if both are available on PyPI, pip will opt for the more suitable Wheel. Use the –no-binary argument to disable pip's default behaviour.
It is possible to install a project with compiled extensions more quickly by using wheels instead of source distributions.
Instead of rebuilding the source distribution in the future, pip will locally construct a wheel and cache it for future installs if it cannot locate one to install.
Upgrade an already installed SomeProject to the latest from PyPI.
py -m pip install --upgrade SomeProject
Installing to the User Site
The user option can be used to install packages only for the current user:
py -m pip install --user SomeProject
See the pip documentation' User Installs section for additional details.
Note that in a virtual environment, the —user option has no effect; all installation commands will have an impact on the virtual environment.
This will install any command-line scripts or console entry points specified by SomeProject in the user's binary directory, regardless of whether they are already in your shell's PATH. Installing scripts to locations other than the PATH environment variable causes a warning to be shown. If the scripts aren't available in your shell after installation, you'll have to add the directory to your PATH
Python -m site —user-base and bin may be used to locate the user base binary directory on Linux and macOS. For example, if you want to print /.local (with extended to the absolute path to your home directory), you'll have to add /.local/bin to your PATH environment variable. Changing /.profile will permanently alter your PATH.
If you're using Windows, do py -m site —user-site to locate the user base binary directory and then replace site-packages with Scripts. C:UsersUsernameAppDataRoamingPython36site-packages, for example, might return, and you'd have to change your PATH to include it.