Pip: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
 
(5 intermediate revisions by the same user not shown)
Line 23: Line 23:
</syntaxhighlight>
</syntaxhighlight>


=<span id='requirements.txt'></span><tt>requirements.txt</tt> File=
=<span id='requirements.txt'></span><span id=Example'></span><span id='Fine_Tuning_Requirements'></span><span id='Chaining_Requirement_Files'></span><span id='How_to_Lock_Down_Direct_and_Transitive_Dependencies'></span><tt>requirements.txt</tt> File=
{{External|https://pip.pypa.io/en/stable/cli/pip_install/}}
{{Internal|requirements.txt|requirements.txt}}
 
The <code>requirements.txt</code> allows you to specify which packages and versions should be installed. Typically, the <code>requirements.txt</code> file is located in the root of the project. The  <code>requirements.txt</code> file can be generated with <code>[[#Freeze_Dependencies|pip freeze]]</code> command. The dependencies from a <code>requirements.txt</code> file can be installed with <code>[[#dashr|pip install -r]]</code> command.
==Example==
<syntaxhighlight lang='text'>
pyOpenSSL==0.13.1
pyparsing==2.0.1
python-dateutil==1.5
pytz==2013.7
scipy==0.13.0b1
six==1.4.1
virtualenv==16.3.0
</syntaxhighlight>
==Fine Tuning Requirements==
{{External|https://pip.pypa.io/en/stable/reference/requirement-specifiers/}}
{{External|https://peps.python.org/pep-0508/}}
 
The versions can be specified with a <code>>=</code> operator, which say to install any version equal or newer than the specified version.
 
An upper bound can be specified with the <code><</code> operator:
<syntaxhighlight lang='text'>
requests>=2.21.0, <3.0
</syntaxhighlight>
 
 
The <code>~=</code> syntax
 
==Chaining Requirement Files==
A requirements file can be "imported" in another requirements file:
 
<code>requirements.txt</code>:
<font size=-1>
# this is production
somepackage==1.0.0
</font>
 
<code>requirements-dev.txt</code>:
<font size=-1>
# this is development
-r requirements.txt
pytest>=4.2.0
</font>
 
==How to Lock Down Direct and Transitive Dependencies==
 
<font color=darkkhaki>
This can be done using <code>pip-compile</code>. When this is needed, process: {{Internal|pip-compile#Overview|pip-compile}}
</font>


=Version=
=Version=
Line 96: Line 49:
{{External|https://pip.pypa.io/en/stable/cli/pip_install/}}
{{External|https://pip.pypa.io/en/stable/cli/pip_install/}}
<syntaxhighlight lang='bash'>
<syntaxhighlight lang='bash'>
pip install <package-name>
pip install <package-name> [-i https://pypi.example.com]
</syntaxhighlight>
</syntaxhighlight>
By default, the command always looks for the latest version of the package and installs it. It also looks for dependencies listed in the [[Python_Language#Package_Metadata|package metadata]] and installs those dependencies as well.  
By default, the command always looks for the latest version of the package and installs it. It also looks for dependencies listed in the [[Python_Language#Package_Metadata|package metadata]] and installs those dependencies as well.  
Line 104: Line 57:
pip install -r requirements.txt
pip install -r requirements.txt
</syntaxhighlight>
</syntaxhighlight>
===Installation Options===
====<tt>-i</tt>====
Specify the base URL of a custom Python Package Index. The default value if not specified is https://pypi.org/simple.


==Upgrade a Package==
==Upgrade a Package==

Latest revision as of 22:03, 9 November 2023

External

Internal

Overview

pip is the standard package manager for Python, that allows you install and manage package that are not part of the Python standard library. pip has been included with the Python installer since 3.4. pip looks for packages in PyPI

Installation

CentOS

https://linuxize.com/post/how-to-install-pip-on-centos-7/
yum install epel-release # On Amazon Linux, it works without this
yum install python-pip

Upgrade

python -m pip install --upgrade pip

requirements.txt File

requirements.txt

Version

pip --version

Operations

List Packages Installed in Environment

pip list

Display Details about a Package

pip show <package-name>

Searching Packages

The search command looks for packages published to PyPI.

pip search <query>

Install a Package

https://pip.pypa.io/en/stable/cli/pip_install/
pip install <package-name> [-i https://pypi.example.com]

By default, the command always looks for the latest version of the package and installs it. It also looks for dependencies listed in the package metadata and installs those dependencies as well.

A set of dependencies specified in a requirements.txt file can be installed with:

pip install -r requirements.txt

Installation Options

-i

Specify the base URL of a custom Python Package Index. The default value if not specified is https://pypi.org/simple.

Upgrade a Package

Use install -U|--upgrade.

pip install --upgrade -r requirements.txt
pip install --upgrade -r requirements.txt

Freeze Dependencies

The freeze command dumps all the packages and their versions to standard output, so you can redirect the output to a file that can be used to install the exact requirements into another system. Used to create requirements.txt files.

 
pip freeze > requirements.txt

Uninstall a Package

It can be problematic if it is a dependency of other installed packages.

 
pip uninstall somepackage