8
16

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

pipでパッケージを一括アップデートする(windowsも)

Last updated at Posted at 2019-02-01

はじめに

pipを使用してパッケージをアップデートする。
Linuxのコマンドはよく見るけど、Windows版はなかなか見なかったので拙いコマンドだけど記事にしました。

Linuxコマンド

pip list -o --format freeze | sed 's/=.*//' | xargs python -m pip install -U

Windowsコマンド

pip list -o --format freeze | % { $_ -replace "=.*", "" } | % { python -m pip install -U &_ }

以下はコマンドの説明をして終了です

Linuxコマンドの説明

sed

  • 置換を行ってくれるコマンド
  • s/置換前の対象/置換後の対象/を意味する
  • 今回の場合は、=.*を空白に変換するということ

xargs

  • 引数を標準入力から与えるもの

  • なんかのコマンド1 | xargs なんかのコマンド2って感じで使う

  • なんかのコマンド1から得られる値を、なんかのコマンド2の引数として使えるよって意味

  • 正直良く分かってないけど、以下のような感じ

    # 標準入力に値する出力内容 実質的な動作内容
    コマンド pip list -o --format freeze (縦線*) sed 's/=.*//' xagrs python -m pip install -U
    上のコマンドを使用したときの出力例 pip
    setuptools
    python -m pip install -U pip
    python -m pip install -U setuptools

    *縦線=「|」(バーティカルバー)のことです。markdownのテーブル機能でバーティカルバーを使用するため、エスケープ出来ませんでした

Windowsコマンド説明

%{}

  • for eachを意味する

$_

  • パイプラインに渡されたオブジェクトを表す変数
  • ざっくり捉えると、出力された内容を受け取ってるよくらいでいいよ
    • 今回だと、以下のようになってます

      $_ = pip list -o --format freeze
      $_ = %{ $_ -replace "=.*", "" }
      % { python -m pip install -U &_ }
      

-replace

  • 置換を行ってくれるコマンド
  • -replace 置換前の対象, 置換後の対象を意味する

最後に

もっと楽にできる方法があったら教えて下さい。
Linuxコマンドも、Powershellコマンドも中途半端にしか分かってないので
上記のコマンドは動作検証をしたまでで、最適な方法ではないです、多分。。。

8
16
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
16

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?