How to update/upgrade a package using pip? - python

What is the way to update a package using pip?
those do not work:
pip update
pip upgrade
I know this is a simple question but it is needed as it is not so easy to find (pip documentation doesn't pop up and other questions from stack overflow are relevant but are not exactly about that)

The way is
pip install <package_name> --upgrade
or in short
pip install <package_name> -U
Using sudo will ask to enter your root password to confirm the action, but although common, is considered unsafe.
If you do not have a root password (if you are not the admin) you should probably work with virtualenv.
You can also use the user flag to install it on this user only.
pip install <package_name> --upgrade --user

For a non-specific package and a more general solution, you can check out pip-review. A tool that checks what packages could/should be updated.
To install:
$ pip install pip-review
Then run:
$ pip-review --interactive
requests==0.14.0 is available (you have 0.13.2)
Upgrade now? [Y]es, [N]o, [A]ll, [Q]uit y

Use this code in terminal:
python -m pip install --upgrade PACKAGE_NAME
For example I want update pip package:
python -m pip install --upgrade pip
More examples:
python -m pip install --upgrade selenium
python -m pip install --upgrade requests
...

tl;dr script to update all installed packages
If you only want to upgrade one package, refer to #borgr's answer. I often find it necessary, or at least pleasing, to upgrade all my packages at once. Currently, pip doesn't natively support that action, but with sh scripting it is simple enough. You use pip list, awk (or cut and tail), and command substitution. My normal one-liner is:
for i in $(pip list -o | awk 'NR > 2 {print $1}'); do sudo pip install -U $i; done
This will ask for the root password. If you do not have access to that, the --user option of pip or virtualenv may be something to look into.

I use the following line to update all of my outdated packages:
pip list --outdated --format=freeze | awk -F '==' '{print $1}' | xargs -n1 pip install -U

import subprocess as sbp
import pip
pkgs = eval(str(sbp.run("pip3 list -o --format=json", shell=True,
stdout=sbp.PIPE).stdout, encoding='utf-8'))
for pkg in pkgs:
sbp.run("pip3 install --upgrade " + pkg['name'], shell=True)
Save as xx.py
Then run Python3 xx.py
Environment: python3.5+ pip10.0+

While off-topic, one may reach this question wishing to update pip itself (See here).
To upgrade pip for Python3.4+, you must use pip3 as follows:
sudo pip3 install pip --upgrade
This will upgrade pip located at: /usr/local/lib/python3.X/dist-packages
Otherwise, to upgrade pip for Python2.7, you would use pip as follows:
sudo pip install pip --upgrade
This will upgrade pip located at: /usr/local/lib/python2.7/dist-packages

Also, in Jupyter notebook, by running the code below in a code cell, you can update your package:
%pip install <package_name> --upgrade

Execute the below command in your command prompt,
C:\Users\Owner\AppData\Local\Programs\Python\Python310>python -m pip install --upgrade pip
Output will be like below,
Requirement already satisfied: pip in c:\users\owner\appdata\local\programs\python\python310\lib\site-packages (21.2.4)
Collecting pip
Downloading pip-22.0.3-py3-none-any.whl (2.1 MB)
|████████████████████████████████| 2.1 MB 3.3 MB/s
Installing collected packages: pip
Attempting uninstall: pip
Found existing installation: pip 21.2.4
Uninstalling pip-21.2.4:
Successfully uninstalled pip-21.2.4
Successfully installed pip-22.0.3

Related

pip install azureml-sdk with latest patches to underlying libraries

How do I upgrade azureml-sdk such that the newest release of azureml-core, 1.1.5.5, is installed?
If azureml-sdk is not installed, pip install --upgrade azureml-sdk will install azureml-core==1.1.5.5. If it is already installed, then it won't.
$ pip list --format=freeze | grep 'azureml-core'`
> azureml-core==1.1.5.1
$ pip install --upgrade azureml-sdk[interpret,notebooks]
$ pip list --format=freeze | grep 'azureml-core'`
> azureml-core==1.1.5.1
You can use the eager strategy to force an upgrade of requirements:
pip install -U --upgrade-strategy eager azureml-sdk
run pip install --upgrade azureml-core==1.1.5.5.
azureml-sdk's metadata.json (as of 1.1.5.1) lists the following requirements:
azureml-core (==1.1.5.*)
azureml-dataprep[fuse] (==1.3.2)
azureml-pipeline (==1.1.5.*)
azureml-train (==1.1.5.*)
azureml-train-automl-client (==1.1.5.*)
So if the SDK version 1.1.5.1 was already installed, then azureml-core==1.1.5.1 meets the SDK's requirements and it won't be upgraded.

Python 3.5.0 can't install anything through pip version 7.1.2

When I try to install anything with (for example) python3 -m pip install numpy , I get
Could not find a version that satisfies the requirement numpy (from versions: )
No matching distribution found for numpy
I've tried upgrading pip3 with python3 -m pip install --upgrade pip but have only gotten
Requirement already up-to-date: pip in
/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-
packages
and when I do python3 -m pip --version I get
pip 7.1.2 from /Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages (python 3.5)
I'm unable to install any modules at all. Any advice? I am on MacOS.
To solve your problem, I suggest you use brew as the package manager and install python, not as binary from the python.org but binary using brew (https://brew.sh), I hope it'll fix your troubles, during the installation process.
Install brew package manager:
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Install "python3" on your machine (python2 can be installed in the same way):
$ brew install python3
Check what version of python you are using:
$ which python3
Output(should look like): /usr/local/bin/python3
Check what pip you are using:
$ which pip3
Output(should look like): /usr/local/bin/pip3
Then you can install any package using "pip":
$ pip3 install virtualenv
Verify that package was installed:
$ pip3 freeze | grep virtualenv
Update pip manually, first download pip:
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
and then run the command
python3 get-pip.py
Now you can install with pip3
pip3 install numpy

python pip ask me to update but it is already updated

Every time I use pip to install some package, it says:
You are using pip version 10.0.1, however version 19.0.1 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.
But when I run
python -m pip install --upgrade pip
It says:
Requirement already up-to-date:
Why is this happening?
Based on your comments, pip is linked to your python 3 installation. The version of pip included in your python 2 installation is up to date (as shown by the python -m ... command you ran).
To update pip for python3, run the same command but using python3 instead. Something like
python3 -m pip install --upgrade pip
Given that the pip you are using is saying it needs updating, you could also just run
pip install --upgrade pip

pip is a package and cannot be directly executed

Im trying to install google assistant on my Raspberry Pi, but when I keep getting an error: pip is a package and cannot be directly executed
Instead of
pip [...]
Try doing
python -m pip [...]
Can't really help more without more info.
I think your version of pip is old. You need to upgrade it first, like this:
pip install -U pip
You may need to upgrade setuptools too:
pip install -U setuptools
Since google-assistant-library is available as a wheel, you need to install wheel too:
pip install wheel
I don't know if you can do that with Raspberry Pi, but I recommend you to used a virtualenv. That way, you have a fresh and isolated Python executable and a recent version of pip.
virtualenv your_proj
source your_proj/bin/activate
pip install wheel
pip install google-assistant-library
For newer version ie. using pip3:
pip3 install -U <<package name>>
I had the same problem.
I think it was an outcome of a failed
> .\python.exe -m pip install --upgrade pip
do to some environment misconfiguration.
So it first removed the existing version 10.0.1, and then the installation of the new version 22.3.1 failed, leaving me with no pip.
From official documentation, I ran
> .\python.exe -m ensurepip --upgrade
which restored the original pip 10.0.1.
Then I fixed the environment problem, and then again
> .\python.exe -m pip install --upgrade pip
I now have pip 22.3.1.

PIP complains when I try to install a module into another virtualenv

I have a module installed in the main python install, however, I'd like to install this module into my virtualenv and I'd like it to be portable, how can I do that?
I'm getting this error:
(v_env)[nubela#nubela-desktop zine-ified]$ pip -E v_env install pyfacebook
Requirement already satisfied (use --upgrade to upgrade): pyfacebook in /home/nubela/...
To force pip installing a package when it's already been detected, you need to use the -I or --ignore-installed flag. In your case, the command would be:
pip -E v_env install -I pyfacebook
pip will then install it into your virtualenv.

Categories

Resources