だから私は最近bash
shellから.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 pip
which python
同じ場所を返す必要があります。このコマンドは、ディレクトリ内の$PATH
実行可能ファイルを含む最初の場所を検索します。
pyenv
、which pip
およびを使用するとwhich python
同じ "shims"ディレクトリが返されますが、これは必ずしも実行可能ファイルが同じディレクトリで実行されるわけではありません。この場合とpyenv which pip
を使用してくださいpyenv which python
。
私の場合、~/.local/bin/
tmuxで実行したときに$ PATHの前にディレクトリが追加されていました。実行ファイル~/.local/bin/
はありますが、実行ファイルはありません。だから私はpipバージョンの代わりにPythonバージョンを試してみました。pip
python
pyenv
~/.local/bin/pip
明確にするために編集されました:
which pip
別のパスを表示するか、which python
pyenvの場合は別のパスを表示すると、pyenv which pip
これがpyenv which python
問題になる可能性があります。
ソリューションは環境に依存するため、すべての場合に適した単一のソリューションを提供することは困難です。
たぶんあなた$PATH
は~/.local/bin
今後 /usr/bin
そして実行ファイル~/.local/bin
はありますが、実行ファイルはありません。だからあなたのコンピュータは見ていますが、見ていません。この場合、必要でない場合は削除してください。あるいは、pipを指すシンボリックリンクで更新することもできます(他の実行可能ファイルがあると仮定)。またはにシンボリックリンクを追加することもできます。または、検索できるように更新することもできます。pip
python
pip
~/.local/bin
python
/usr/bin
pip
~/.local/bin
/usr/bin
pip
~/.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
状況によって異なります)。時々、set
zsh / bash環境で出力を区別する方が簡単です。この違いは途方もない可能性があるので(1,000行以上)、まるで干し草の山で針を見つけるのと同じです。欠落または変更された変数(PATHなど)とPYTHONNOUSERSITE、PYTHONPATH、およびPIPで始まる、またはPIP(またはPY?)シェル関数(pip(){...}など)を含むコンテンツを計算できます。