Python packages hash not matching whilst installing using pip - python

I am using pip to install all my python packages but get error as shown in the trace below. What is the problem and how can I solve it?
usr#comp:~$ pip install flask
Collecting flask
Using cached Flask-0.11.1-py2.py3-none-any.whl
Collecting itsdangerous>=0.21 (from flask)
Using cached itsdangerous-0.24.tar.gz
Collecting click>=2.0 (from flask)
Using cached click-6.6.tar.gz
Collecting Werkzeug>=0.7 (from flask)
Using cached Werkzeug-0.11.11-py2.py3-none-any.whl
Requirement already satisfied (use --upgrade to upgrade): Jinja2>=2.4 in /usr/lib/python2.7/dist-packages (from flask)
Requirement already satisfied (use --upgrade to upgrade): MarkupSafe in /usr/lib/python2.7/dist-packages (from Jinja2>=2.4->flask)
THESE PACKAGES DO NOT MATCH THE HASHES FROM THE REQUIREMENTS FILE. If you have updated the package versions, please update the hashes. Otherwise, examine the package contents carefully; someone may have tampered with them.
Werkzeug>=0.7 from https://pypi.python.org/packages/a9/5e/41f791a3f380ec50f2c4c3ef1399d9ffce6b4fe9a7f305222f014cf4fe83/Werkzeug-0.11.11-py2.py3-none-any.whl#md5=c63a21eedce9504d223ed89358c4bdc9 (from flask):
Expected md5 c63a21eedce9504d223ed89358c4bdc9
Got 13a168aafcc43354b6c79ef44bb0dc71

There is a similar problem (Why does pip fail with bad md5 hash for package?) from 2013 the solution that I tried that worked for me is this:
sudo pip install --no-cache-dir flask
given by attolee

The problem here is the Python package was updated with new hash value while pip was trying to install the Python package using the old hash value cached in pip cache directory. This cache needs to be purge before the pip install attempt. So the full solution is:
python -m pip cache purge
python -m pip install <package>

--no-cache-dir did not work for me in raspberry pi 4 at first.
Found that the problem was due to unexpected network change/failure during pip installation
I had to download the broken .whl file manually with wget
and install it like below:
sudo pip install scipy-1.3.0-cp37-cp37m-linux_armv7l.whl
followed by
sudo pip install --no-cache-dir keras
Then it worked.

Looks like a cache problem, the cached package is different from REQUIREMENTS.
Perhaps caused by last updates interruption.
I did this which fixed my problem:
rm ~/.cache/pip -rf

You need to upgrade your pip into the newer version:
Using this command:
python -m pip install -upgrade pip
for Mac/Linux operating system and use
python -m pip install --upgrade tensorflow
for Windows to update your pip. Then run your command
pip install flask

In case you got this error while using pipenv try
$ pipenv --clear
$ pipenv lock
$ pipenv install

first, try to upgrade your pip then install the library
python -m pip install -upgrade pip
if it didn't work just try to install it without the cash
pip install --no-cache-dir the_library_name

I got the error during installing panads
You need to remove the cache and reinstall .
pip install --no-cache-dir flask

I had a similar issue for a different module. It was caused by network failure. My fix was nothing complex but another attempt at installing it and it worked.

maybe pipiserver(where you pip install from) upload a pkg for example flask-1.0.0.tar.gz, and rm is upload a new flask-1.0.0.tag.gz,if new pkg code has changed ,the hash must be different,there is two ways:
installl an older pkg version =, pip install flask==0.0.9
wait new pkg release flask==1.0.1 or cache expiration.

I have tried to clear pip cache with "-m pip cache purge" and using the "--no-cache-dir" argument but it was not helping.
In my case it was VPN being active during the attempts to install the package. As soon as I have turned it off everything worked as expected.

Related

pip list returns -bash: pip: command not found

I am checking the documentation and there are basically two ways to install pip.
python -m ensurepip --upgrade
Looking in links: /var/folders/d0/gnksqzwn2fn46fjgrkp6045c0000gn/T/tmpe2ll6upv
Requirement already satisfied: setuptools in /Applications/Anaconda/anaconda3/lib/python3.9/site-packages (58.0.4)
Requirement already satisfied: pip in /Applications/Anaconda/anaconda3/lib/python3.9/site-packages
All the packages are in /Applications/Anaconda/anaconda3/lib/python3.9/site-packages directory including pip.
However, when I run pip list from base environment, I get:
-bash: pip: command not found
I am getting module not found error when running my application.
My application was running fine until I tried to upgrade a python package. What did I mess up? What do I need to check?
Try this python -m pip list instead of python pip list
It could be that pip might not be installed or it could be the version of the pip might not be compatible with the current version.
pip used for python2, use pip3 for python3 and upgrade your pip and retry once.
python -m pip install --upgrade pip

Pip cannot install anything on ubuntu server

I had deleted an existing virtual environment. I created a new one and activated it. Now I am trying to install site packages using
pip install -r requirements.txt
But I keep getting the error
Cannot fetch index base URL https://pypi.python.org/simple/
Could not find any downloads that satisfy the requirement BeautifulSoup==3.2.1 (from -r requirements.txt (line 1))
Now I know that the packages are really old but this is running on python 2.7.6. I am also not able to install anything through pip. I have tried
pip install numpy
But it shows the same errors. As per the similar questions answered before the suggestion is to use https://pypi.python.org which I have already done but still facing these errors.
Would love to hear your suggestions.
Might be a problem with having an old version of pip.
Try pip install --upgrade pip and then try installing the requirements again.
pip tries to create lockfile in cache directory
Try running pip install --upgrade pip --no-cache-dir

PIP and python -m pip doesnt work when I specify the version

I have got a problem when I want to install a specific version of a python library since I updated pip to 10.0.0. I would like to install it back but I cant find it, so I am forced to use the whole command , but it doesnt let me to install specific version of python package, any idea how to do it ?
C:\Windows\system32>python -m pip install APScheduler==3.0.0
Collecting APScheduler==3.0.0
C:\Windows\system32>python -m pip install pip APScheduler==3.0.0
Requirement already satisfied: pip in c:\program files (x86)\python36-32\lib\site-packages (10.0.0)
Collecting APScheduler==3.0.0
C:\Windows\system32>python -m pip install APScheduler==3.0.0
Collecting APScheduler==3.0.0
C:\Windows\system32>python -m pip install pymongo
Collecting pymongo
Downloading https://files.pythonhosted.org/packages/c2/96/00951e252c6cad023b3fd60457b2ab1c1329073516086c7ac1b6833a439e/pymongo-3.6.1-cp36-cp36m-win32.whl (286kB)
100% |████████████████████████████████| 286kB 1.3MB/s
Installing collected packages: pymongo
Successfully installed pymongo-3.6.1
also this is the part of a pip error I am dealing with , so any help would be awesome ^.^ ( Tried few things from stack overflow but neighter of them worked )
C:\Windows\system32>pip install APScheduler==3.0.0
Fatal error in launcher: Unable to create process using '""c:\program files (x86)\python36-32\python.exe" "C:\Program Files (x86)\Python36-32\Scripts\pip.exe" install APScheduler==3.0.0'
Try using the --upgrade flag.
python -m pip install --upgrade APScheduler==3.0.0
It should work for downgrades as well
Make sure that both python.exe and pip are available in the locations in which it is looking for them. The pip launcher program is failing to run the command that it's printing in the error, which is probably because it can't find the relevant files.
Alternatively, just run pip using python -m pip which seems to work fine.

installing python packages have issue in md5

I'm using Windows and when I want Install packages I got below error:
pip install django
Requirement already satisfied (use --upgrade to upgrade): django in c:\python27\lib\site-packages
C:\code\Djangotest\amar-e-simples-master>pip install django --upgrade
Collecting django
Downloading Django-1.9.7-py2.py3-none-any.whl (6.6MB)
6% |# | 399kB 3.3MB/s eta 0:00:02
THESE PACKAGES DO NOT MATCH THE HASHES FROM THE REQUIREMENTS FILE. If you have updated the package versions, please update the hashes. Otherwise, examine the package contents carefully; someone may have tampered with them.
django from https://pypi.python.org/packages/e6/f9/154e1460c4a95c90ab28ead50314161ea2c4016f3561033b41f687f0a76d/Django-1.9.7-py2.py3-none-any.whl#md5=5224b6f237a9e46a84fc0f9921f678ae:
Expected md5 5224b6f237a9e46a84fc0f9921f678ae
Got f603e16057383b3ad12d8bda84492fbb
what to do with this problem (In windows)?
If you get an error like pip: error: no such option: --hash, you are using too old a version of Pip, use the following command to upgrade:
$ pip install --upgrade pip
On Windows the recommended command is:
python -m pip install --upgrade pip
After the update, if the this error appeared again,
use "--no-cache-dir" when you upgrade/install:
pip --no-cache-dir install YOUR-PACKAGENAME
or
pip --no-cache-dir install --upgrade YOUR-PACKAGENAME
A good reason for the hash to be different is if you use a platform that isn’t covered by the existing hashes for a package that has wheels.

Python packages not installing in virtualenv using pip

I'm having trouble installing twisted
pip --version
pip 1.1 from
/home/chris/GL/GLBackend/glenv/lib/python2.7/site-packages/pip-1.1-py2.7.egg
(python 2.7)
Create a virtual environment
chris#chris-mint ~/GL/GLBackend $ sudo virtualenv -p python2.7 glenv
Running virtualenv with interpreter /usr/bin/python2.7 New python
executable in glenv/bin/python2.7 Also creating executable in
glenv/bin/python Installing
distribute.............................................................................................................................................................................................done.
Installing pip...............done.
Just in case, I'll enable all permissions
chris#chris-mint ~/GL/GLBackend $ sudo chmod -R 777 glenv
chris#chris-mint ~/GL/GLBackend $ source glenv/bin/activate
(glenv)chris#chris-mint ~/GL/GLBackend $ pip freeze
argparse==1.2.1 distribute==0.6.24 wsgiref==0.1.2
twisted is not listed here as installed
(glenv)chris#chris-mint ~/GL/GLBackend $ sudo pip install twisted
Requirement already satisfied (use --upgrade to upgrade): twisted in
/usr/local/lib/python2.7/dist-packages Requirement already satisfied
(use --upgrade to upgrade): zope.interface>=3.6.0 in
/usr/local/lib/python2.7/dist-packages (from twisted) Requirement
already satisfied (use --upgrade to upgrade): distribute in
/usr/local/lib/python2.7/dist-packages (from
zope.interface>=3.6.0->twisted) Cleaning up... (glenv)chris#chris-mint
~/GL/GLBackend $ pip uninstall twisted Cannot uninstall requirement
twisted, not installed Storing complete log in
/home/chris/.pip/pip.log
But when I install it it says that its already installed.
Force the install:
sudo pip install -I twisted
Downloading/unpacking twisted Downloading Twisted-12.3.0.tar.bz2
(2.6Mb): 2.6Mb downloaded Running setup.py egg_info for package
twisted
. . .
Successfully installed twisted zope.interface distribute Cleaning
up...
And yet it still isn't installed
(glenv)chris#chris-mint ~/GL/GLBackend $ pip freeze
argparse==1.2.1 distribute==0.6.24 wsgiref==0.1.2
**When I try running Python scripts which use twisted, I get an error saying that twisted is not installed. That is:
ImportError: No module named twisted.python**
The problem here is that you're using sudo when you shouldn't be. And that's causing pip to try to install into /usr/local/lib instead of ~/glenv/lib. (And, because you used sudo, it's successfully doing so, but that doesn't help you, because you're not allowing system site-packages in your venv.)
There are multiple reasons sudo pip could lead to this behavior, but the most likely is this: On most systems (including the various Mac and RHEL/CentOS boxes I have immediate access to), the sudoers file will reset your environment, then add back in a handful of whitelisted environment variables. This means that when you sudo pip, it will not see the environment variables that virtualenv sets up, so it will fall back to doing the default thing and install into your system Python, instead of your venv.
But really, it doesn't matter why this is happening. The answer is the same: just do pip install instead of sudo pip install.
Note that you also want to remove the sudo on the virtualenv call, as this will probably cause the venv to be set up incorrectly (which is why you need the sudo chmod, which wouldn't be necessary otherwise). The whole point of installing things under your user home directory is that you can do it with your normal user permissions.
As a side note, you also may want to upgrade to a newer virtualenv/pip, as 1.8 and 1.2 have some bug fixes and improvements. But I verified that I get exactly the same problem as you even with the latest (1.8.4 and 1.2.1) versions, so I don't think that's relevant here.
The sudo pip is causing the problem here. It will install the package in your system instead of the virtual environment you created. So when it says the requirement is already satisfied. Try to look add the directory it is pointing to. Which is in your case, while you were trying to install, was /usr/local/lib/python2.7/dist-packages
If it's inside something like /usr/local/lib/..., which does not points to your virtualenv folder then it is installed in your system. Otherwise, in correct scenario it will look something like this /usr/local/lib/..../<name of your virtualenv>/lib.
You can always use commands like which python & which pip to see if they both are using the placeholder of our virtual environment.

Categories