Whenever I am trying to install any package using pip, I am getting this import error:
guru@guru-notebook:~$ pip3 install numpy
Traceback (most recent call last):
File "/usr/bin/pip3", line 9, in <module>
from pip import main
ImportError: cannot import name 'main'
guru@guru-notebook:~$ cat `which pip3`
#!/usr/bin/python3
# GENERATED BY DEBIAN
import sys
# Run the main entry point, similarly to how setuptools does it, but because
# we didn't install the actual entry point from setup.py, don't use the
# pkg_resources API.
from pip import main
if __name__ == '__main__':
sys.exit(main())
It was working fine earlier, I am not sure why it is throwing this error. I have searched about this error, but can't find anything to fix it.
Please let me know if you need any further detail, I will update my question.
Same thing happened to me on Pixelbook using the new LXC (strech). This solution is very similar to the accepted one, with one subtle difference, whiched fixed pip3 for me.
That bumped the version, and now it works as expected.
I found it here ... Python.org: Ensure pip is up-to-date
As @cryptoboy said - check what pip/python version you have installed
and then check for no-needed libraries in your .local/lib/ folder.
I did backup of settings when I was migrating to newer Kubuntu and in had .local/lib/python2.7/ folder in my home directory. Installed python 3.6. I just removed the old folder and now everything works great!
import main from pip._internal
Edit the pip code from
resolved in one step only.
I too faced this issue, But this can be resolved simply by 1 command without bothering around and wasting time and i have tried it on multiple systems it's the cleanest solution for this issue. And that's:
For python3:-
sudo python3 -m pip uninstall pip && sudo apt install python3-pip --reinstall
.By this , you can simply install packages using
pip3
. to check usepip3 --version
.For older versions, use :
sudo python -m pip uninstall pip && sudo apt install python-pip --reinstall
.By this, now you can simply install packages using
pip
. to check usepip --version
.You must have inadvertently upgraded your system pip (probably through something like
sudo pip install pip --upgrade
)pip 10.x adjusts where its internals are situated. The
pip3
command you're seeing is one provided by your package maintainer (presumably debian based here?) and is not a file managed by pip.You can read more about this on pip's issue tracker
You'll probably want to not upgrade your system pip and instead use a virtualenv.
To recover the
pip3
binary you'll need tosudo python3 -m pip uninstall pip && sudo apt install python3-pip --reinstall
.If you want to continue in "unsupported territory" (upgrading a system package outside of the system package manager), you can probably get away with
python3 -m pip ...
instead ofpip3
.We can clear the error by modifying the pip file.
Check the location of the file:
Go to that location(/usr/bin/pip) and open terminal
Enter:
$ sudo nano pip
You can see:
Change to:
then ctrl + o write the changes and exit
Hope this will do!!