pip3 “TypeError: 'module' object is not ca

2020-01-25 01:00发布

问题:

I am new in Python, I wanna install Jupyter Notebook in my console I enter the following:

pip3 install --upgrade pip 

after that I have a error to use pip3 install other library, the console print:

File "/usr/bin/pip3", line 11, in <module>
    sys.exit(main())
TypeError: 'module' object is not callable

I don't know what I have to do.

I use sudo autoremove python3-pip after that I use sudo apt install python3-pip

回答1:

From the link by Bram, I just ran python3 -m pip uninstall pip, and it started to work again.



回答2:

The solution which worked for my situation is simply editing the pip3.8 file in the ubuntu environment.

Method1:

#!/path/to/.venv/bin/python3
# -*- coding: utf-8 -*-
import re
import sys

from pip._internal.main import main  # <--- look at this import statement! 

if __name__ == '__main__':
     sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
     sys.exit(main())

method2:

The main function has to be imported or we can simply replace line

sys.exit(main())

As

sys.exit(main.main())


回答3:

Use this

python -m pip install --upgrade --user [name_of_your_package]



回答4:

As seen here, you should be able to solve this by running the module from Python directly, i.e.

python -m pip install --upgrade pip


回答5:

In Windows edit C:\ProgramData\Anaconda3\Scripts\pip-script.py and replace

# -*- coding: utf-8 -*-
import re
import sys
from pip._internal import main

if __name__ == '__main__':
    sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
    sys.exit(main())

Replace the last line with sys.exit(main.main()).