Bashからzshに変更した後のpipエラー

Bashからzshに変更した後のpipエラー

だから私は最近bashshellから.pipに変更しましたがzsh、pipの使用に問題がありますpython。私が試したとき

pip list
ModuleNotFoundError: No module named 'pip._internal.main'

これはwhich pip私に提供されるので、/home/marvin/.local/bin/pip私の行に示されている行に沿ってbashrcこれを追加します。zshrc

# adding packages installed via pip
export PATH="/home/marvin/.local/bin:$PATH"

また、これを試すためにシェルとマシンを再起動しました。それでも pip を使用して仮想環境を処理することはできません。誰でもこの問題を解決するように指示できますか?

[編集する]

だから私はそうでした。

python3 -m pip install --user --upgrade pip

そしてそれがグローバルスケールで動作するようにしてください。残念ながら、仮想環境を再作成する必要がありました。問題は、シェル間の移行が環境を再生成することを意味することです。これを行うより良い方法が必要です。

答え1

私はこのエラーメッセージを見ました$PATH

以下はいくつかのトラブルシューティング手順です。

を使用してパスを表示できますecho $PATH

which pipwhich python同じ場所を返す必要があります。このコマンドは、ディレクトリ内の$PATH実行可能ファイルを含む最初の場所を検索します。

pyenvwhich pipおよびを使用するとwhich python同じ "shims"ディレクトリが返されますが、これは必ずしも実行可能ファイルが同じディレクトリで実行されるわけではありません。この場合とpyenv which pipを使用してくださいpyenv which python

私の場合、~/.local/bin/tmuxで実行したときに$ PATHの前にディレクトリが追加されていました。実行ファイル~/.local/bin/はありますが、実行ファイルはありません。だから私はpipバージョンの代わりにPythonバージョンを試してみました。pippythonpyenv~/.local/bin/pip

明確にするために編集されました:

which pip別のパスを表示するか、which pythonpyenvの場合は別のパスを表示すると、pyenv which pipこれがpyenv which python問題になる可能性があります。

ソリューションは環境に依存するため、すべての場合に適した単一のソリューションを提供することは困難です。

たぶんあなた$PATH~/.local/bin 今後 /usr/binそして実行ファイル~/.local/binはありますが、実行ファイルはありません。だからあなたのコンピュータは見ていますが、見ていません。この場合、必要でない場合は削除してください。あるいは、pipを指すシンボリックリンクで更新することもできます(他の実行可能ファイルがあると仮定)。またはにシンボリックリンクを追加することもできます。または、検索できるように更新することもできます。pippythonpip~/.local/binpython/usr/binpip~/.local/bin/usr/binpip~/.local/bin/python/usr/bin/python$PATH/usr/bin 今後探す~/.local/bin

ソリューションは、環境、Python のインストール方法、使用するバージョンなどによって異なります。

答え2

この奇妙な動作は、一部のPATHバージョンとpython / pipバージョンの違いが原因で発生する可能性があります。

Bashとzshで次のコマンドの出力を確認することをお勧めします。

pip --version
python -m pip --version
pip2 --version
python2 -m pip --version
pip3 --version
python3 -m pip --version

〜のように@クサラナンダ提案、初期化ファイルも確認する必要があります(例:.bashrc状況によって異なります)。時々、setzsh / bash環境で出力を区別する方が簡単です。この違いは途方もない可能性があるので(1,000行以上)、まるで干し草の山で針を見つけるのと同じです。欠落または変更された変数(PATHなど)とPYTHONNOUSERSITE、PYTHONPATH、およびPIPで始まる、またはPIP(またはPY?)シェル関数(pip(){...}など)を含むコンテンツを計算できます。

関連情報