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


42

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

pip3 install --upgrade pip 

その後、pip3 install 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


多分それはあなたのファイルの一部を期待されたモジュールではなくインポートし、それを実行するのに問題があります-それはすなわち可能性があります。main.pypip別のフォルダで使用してみましたか?
furas

1
私も同じエラーがありました。
Hyrial、

始めてくれてありがとう-私はこれを修正するための私の手順をstackoverflow.com/questions/34573159/…
jvonehr

回答:


61

Bram のリンクから、私はを実行したところpython3 -m pip uninstall pip、再び動作し始めました。


3
誰かがこれを説明できますか?
Saif Ur Rahman、

5
@SaifUrRahman:提供されたリンクから、これはユーザー固有のpipインストール(OPsコマンドによってインストール/アップグレードされる)とオペレーティングシステムによって提供されるグローバルpipインストールの間の競合であるようです。
vlz

5

私の状況で機能した解決策は、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())

はい!「方法#1」をありがとう!
Ryan Loggerythm

メソッド#2は魅力のように機能しました!ありがとう!!!
David Aubin

ありがとう!メソッド#2は私のために働いた。次回/Applications/Xcode.app/Contents/Developer/usr/bin/pip3を更新したときに失敗するのではないかと心配しています。
ジェットパック2019



1

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())に置き換えます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.