私はDebian 9.5 Stretchリリースを使用しています。 pipの使用中にインポートエラーが発生します。私がpipを使用しようとすると、それは言う:
pythonの2つのバージョンがインストールされています:2.7と3.5
どのpipの出力:/usr/bin/pip
Apt-get pipを使用して再インストールしようとしたところ、初めて完全に正常に動作しましたが、次回は同じエラーが表示されます
の内容 /usr/bin/
何が問題かわからない。
これは、同じプレフィックス(apt-get
)で2つの異なるパッケージマネージャー(dpkg
またはそのフロントエンド/usr
、およびpip
自体)を使用していたために発生した可能性が高いです。私はどちらかと思います
apt-get upgrade
はいくつかの依存関係を更新していますが、pip
とapt-get
は単にそれらについて知らなかったため、dpkg
によってインストールされた他のファイルは更新されませんでしたORapt-get remove
を使用してパッケージを削除した場合、apt-get
はこのパッケージの使用を何も認識していなかったため(他のパッケージはpip
によってインストールされたため、dpkg
データベースに含まれていなかったため)、警告されませんでした他のパッケージを壊すことについてあなた。どのパッケージマネージャーでどのパッケージがインストールされたかがわからないので、システムを修復する方法についての具体的なアドバイスはできません。一般的なアドバイスのみです。
複数の異なるパッケージマネージャーを使用しないでください。ファイルシステムの特定の(サブ)ツリーに対して1つのパッケージマネージャーのみを使用すると、不整合が発生します。および/または競合。 /usr
ツリー用のDebianのパッケージマネージャーはdpkg
と呼ばれ、それを呼び出さずにnooneすべきですevertouch /usr
。
あなたが遭遇するほとんどのpython関連の人々がSudo pip install
;に言っても、pipをプッシュしようとすることは確かに役に立ちません。しないでください。 python理由のあるものを含むディストリビューションパッケージがあります。また、 AskUbuntuに関するこの関連質問 および StackOverflowに関するこの回答 も参照してください。
あなたはで新鮮なピップをインストールすることで混乱を修復しようとすることができます
apt-get purge python-pip python3-pip
apt-get install python-pip python3-pip
ただし、dpkg
によってインストールされたため、pip
が認識していないファイルが残っている可能性があります。確実な方法は、/usr/lib/python*
の下にあるすべてのファイルがdebianパッケージに属しているかどうかをチェックし、属していない場合は例外なく削除することです。
ここでも、onlydpkg
およびapt-get
、aptitude
、synaptic
などのフロントエンドツールを使用して/usr
を変更します。システム全体に.deb
パッケージとして利用できないものをインストールする必要がある場合は、パッケージを作成してdpkg
でインストールするか、/usr/local
の下にインストールします。
Python2.7をデフォルトとして設定します。
Sudo update-alternatives --config python
python2.7を選択します。
pip
を削除:
Sudo python -m pip uninstall pip
Sudo apt purge --autoremove python-pip
再インストール:
Sudo apt install python-pip
pip --version
:
pip 9.0.1 from /usr/lib/python2.7/dist-packages (python 2.7)
pip
を最新バージョンにアップグレードしないでください。
次のコマンドを試してください:
hash -d pip