Pip: パッケージのソースディレクトリで呼び出されると、 `pipuninstall`が失敗します

作成日 2019年07月12日  ·  3コメント  ·  ソース: pypa/pip

環境

  • pipバージョン:19.1.1
  • Pythonバージョン:3.6.8
  • OS:macOS

説明

python3 -m pip install --user .を使用して、ローカルパッケージspamをインストールしました。 パッケージフォルダが現在のディレクトリにあるときにパッケージをアンインストールしようとすると、次のようになります。

$ pwd
/Users/me/spam
$ ls
README.md  setup.cfg  setup.py  test  tox.ini  spam
$ python3 -m pip uninstall --verbose spam
Not sure how to uninstall: spam 0.0.1 - Check: /Users/me/spam  # this line only shown with --verbose flag
Can't uninstall 'spam'. No files were found to uninstall.

別のディレクトリから実行すると、アンインストールは正常に完了します。

$ cd \tmp && python3 -m pip uninstall --verbose spam
# successfully uninstalls...

予想される行動
uninstallがローカルディレクトリの内容に敏感であるとは思っていませんでした。 これが技術的な理由で予想される動作である場合は、 stderrメッセージCan't uninstall 'spam'. No files were found to uninstall.を変更して、ターゲットパッケージの名前を持つローカルフォルダーがあるために失敗した可能性があることを示すのに役立ちます。

UX UX- error messages enhancement

最も参考になるコメント

@pfmooreあなたの編集したメッセージは間違いなく改善されたと思います(そして私は時間を節約できたでしょう)が、私はさらに進んでいきます。 Can't uninstall 'spam' (in current directory). No files were found to uninstall.\nTo uninstall 'spam' from the system library, run the same command from a directory without a 'spam' directory.のようなもっと有益なものはどうですか(より正確な用語がある場合はsystem libraryを変更してください)。 冗長すぎますか?

誰かがこのメッセージにぶつかるのは、私と同じような状況にあった場合だけのようです。 私は間違っているかもしれませんが、 cd path/to/site-packages && python3 -m pip uninstall spamのような現在のディレクトリからのアンインストールは、ごくわずかな使用例のように思えます。誰かがそれを行うのに十分な知識がある場合、私のような口呼吸器用に調整されたメッセージはそれらを混乱させません。

ほとんどのユーザーは、私がしたように;-) – uninstallが魔法のようにシステムライブラリでパッケージを見つけに行くと思っているようです。

全てのコメント3件

たぶん、この場合のエラーを修正してCan't uninstall 'spam' (found in current directory). No files were found to uninstall.と言いますか?

@pfmooreあなたの編集したメッセージは間違いなく改善されたと思います(そして私は時間を節約できたでしょう)が、私はさらに進んでいきます。 Can't uninstall 'spam' (in current directory). No files were found to uninstall.\nTo uninstall 'spam' from the system library, run the same command from a directory without a 'spam' directory.のようなもっと有益なものはどうですか(より正確な用語がある場合はsystem libraryを変更してください)。 冗長すぎますか?

誰かがこのメッセージにぶつかるのは、私と同じような状況にあった場合だけのようです。 私は間違っているかもしれませんが、 cd path/to/site-packages && python3 -m pip uninstall spamのような現在のディレクトリからのアンインストールは、ごくわずかな使用例のように思えます。誰かがそれを行うのに十分な知識がある場合、私のような口呼吸器用に調整されたメッセージはそれらを混乱させません。

ほとんどのユーザーは、私がしたように;-) – uninstallが魔法のようにシステムライブラリでパッケージを見つけに行くと思っているようです。

たぶん、「あなたのコンピュータ」は「システムライブラリ」よりも優れているでしょうか?

あなたの提案の繰り返し@reynoldsnlp

(現在のディレクトリにある)「スパム」をアンインストールできません。 アンインストールするファイルが見つかりませんでした。\ nコンピュータから「スパム」をアンインストールするには、「スパム」ディレクトリを含まないディレクトリから同じコマンドを実行します。

はっきりしていますか?

このページは役に立ちましたか?
0 / 5 - 0 評価