web-dev-qa-db-ja.com

更新後のpip3 "TypeError: 'module'オブジェクトは呼び出し不可能です"

私はPythonが初めてなので、コンソールにJupyter Notebookをインストールします。次のように入力します。

pip3 install --upgrade pip 

その後、pip3 install other other libraryを使用するとエラーが発生し、コンソールに出力されます:

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

私は何をしなければならないのか分かりません。

私が使う Sudo autoremove python3-pipその後はSudo apt install python3-pip

Bramの link から、私はpython3 -m pip uninstall pip、そしてそれは再び動作し始めました。

59
Hyrial

私の状況で機能した解決策は、ubuntu環境でpip3.8ファイルを編集することです。

方法1:

#!/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:

メイン関数をインポートする必要があります。そうしないと、行を置き換えるだけで済みます

sys.exit(main())

なので

sys.exit(main.main())
4
google

これを使って

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

3
Purushottam

WindowsでC:\ ProgramData\Anaconda3\Scripts\pip-script.pyを編集して置き換えます

# -*- 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())

最後の行をsys.exit(main.main())に置き換えます。

1
Maddu Swaroop

here のように、Pythonから直接モジュールを実行することでこれを解決できるはずです。

python -m pip install --upgrade pip
0
Bram Vanroy