17
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

updated at

【Python】pip10以降の新しい書き方を覚えておこう

pip listみたいにpipコマンドをそのまま使うと、以下の警告が表示されてドキッとする。この書き方は古いようだ。

WARNING: pip is being invoked by an old script wrapper. This will fail in a future version of pip.
Please see https://github.com/pypa/pip/issues/5599 for advice on fixing the underlying issue.
To avoid this problem you can invoke Python with '-m pip' instead of running pip directly.

単独のpipを使用するのは非推奨

以下のようにPython付属のpipを使用する事を推奨している。

$ python3 -m pip [pipコマンド]

Python付属のpipを使用することで何が変わるわけではないが、僕的によく使うpipコマンドのスニペットを貼っていこうと思う。

pipでインストール済みのパッケージをリストアップする場合

$ python3 -m pip list

pipでパッケージをインストールする場合

$ python3 -m pip install [パッケージ名]

pipでバージョン指定してインストールする場合

$ python3 -m pip install [パッケージ名]==指定バージョン

例)バージョン3.4でopencv-pythonをインストールする場合

$ python3 -m pip install opencv-python==3.4

ただし、3.4というバージョンは存在しないので、ご丁寧に指定できるバージョンを教えてくれる。

ERROR: Could not find a version that satisfies the requirement 
opencv-python==3.4.10.35 (from versions: 
3.2.0.6, 3.2.0.7, 3.2.0.8, 3.3.0.9, 3.3.0.10, 3.3.1.11, 
3.4.0.12, 3.4.0.13, 3.4.0.14, 3.4.1.15, 3.4.2.16, 3.4.2.17, 
3.4.3.18, 3.4.4.19, 3.4.6.27, 3.4.7.28, 4.0.1.24, 4.1.0.25, 4.1.1.26)

ERROR: No matching distribution found for opencv-python==3.4

とてもありがたい。

既にインストール済みのパッケージのバージョンをダウングレードする場合

$ python3 -m pip install [パッケージ名]==指定バージョン

新規インストールと同様にinstallをそのまま実行してもらえれば良い。

Installing collected packages: opencv-python
  Attempting uninstall: opencv-python
    Found existing installation: opencv-python 4.1.1.26
    Uninstalling opencv-python-4.1.1.26:
      Successfully uninstalled opencv-python-4.1.1.26
Successfully installed opencv-python-3.4.7.28

このようにインストールされていたものは自動的にアンインストールされる。

最後に

基本的に「$ python3 -m pip」を覚えておけば問題ない。
Pythonにpipが付属するのがバージョン3.4以降だということには注意が必要。

関連記事

環境

  • Python 3.5.3
  • pip 20.2.1

Register as a new user and use Qiita more conveniently

  1. You can follow users and tags
  2. you can stock useful information
  3. You can make editorial suggestions for articles
What you can do with signing up
17
Help us understand the problem. What are the problem?