Python

pipのコマンド操作とオプション一覧

最近、pip や pipenv のコマンドを使う機会が増えてきたので pip コマンドについてまとめてみました。

pip は依存関係に引っ掛かることも多いですが、ここは慣れですね。

ヘルプ

ヘルプは –help か -h になります。

バージョン確認

バージョンは –version か -V(大文字のV)で確認できます。

手元の EC2 の AmazonLinux は python2.7 だったのか・・・。

インストール済みのパッケージ一覧

以前、Redis のモジュールがインストールされていなくて import でエラーになった苦い記憶があるので、インストール済のパッケージは事前に確認しておきます。

現在は 18.1 が最新だからアップグレードしてねっと丁寧に指摘されました。

インストール済パッケージの確認の前にバージョンアップしておきますか。

無事に最新になりました。

再度、インストール済のパッケージ一覧を確認します。

コマンド履歴を確認したら、過去に locustio をインストールした形跡があったので、それに依存するパッケージが標準パッケージに追加された感じですね。

locustio をインストールした時の記事はこちら。

負荷テストツールLocust(イナゴ 175)のインストールと実行先日、負荷テストの話題になって聞き慣れないツールの名前が出たので調べてみました。 負荷テストのツールと言えば、簡易的なもので「Apac...

インストール可能なパッケージ検索

BeautifulSoup が入っていないので、インストール可能な BeautifulSoup のパッケージを探してみます。

BeautifulSoup が 4 ではなく 3.2.1 なのは python2.7 だからなのかな。

パッケージをインストール

BeautifulSoup のパッケージをインストールしてみます。

パッケージ一覧を確認します。

最新じゃないパッケージ一覧

冒頭で pip のバージョンアップを行いましたが、他のインストール済パッケージの最新バージョンを確認してみます。

めっちゃ出ましたね・・・。

これらを最新にしておきたいですが、冒頭で紹介したヘルプの結果に update や upgrade のオプションは記載されていませんでした。

パッケージの更新(アップデート)

pip のバージョンアップを催促された時に –upgrade を指定されたのでこれを使ってみます。

1 つずつ指定するのは面倒なのでパッケージを省略してみます。

なるほど。インストールコマンド用のヘルプがあるんですね。

ワイルドカード指定とかできないでしょうか。

無理でしたね・・・。

どうやらテキストファイルなどにパッケージ一覧を記載したものを指定するしか方法がないようなので、先ほどのアップグレード対象のパッケージを出力します。

ヘッダの 2 行が邪魔ですね。

awk で指定の行数以降だけを取得する場合は NR が利用できます。

列は NF でしたが、行は NR なんですね。

awkで最後から2番目のカラムの値を取得するApache のアクセスログを見ていたら、リクエストの処理に掛かった時間が最後から 2 番目に出力されるログ設定になっていました。 ち...

これでをファイル出力して読み込ませてもいいのですが、どうせならこのまま一気にアップデートしちゃいましょう。

あとは依存関係などのエラーが出ないことを祈りつつ・・・。

インストールやアップグレード時のエラー

上記で祈った甲斐もなくエラーが出ました。

pip コマンドを使う時は何かしら警告やエラーに遭遇する気がします。

どうしても必要なモジュールの場合は全力で解決に向かいますが、今回のように何気なく最新アップデートした場合などは時間に余裕がある時に解決しましょう。

意外にハマりますから・・・。

どうやら libcurl が必要らしいですね。

libcurl-devel をインストールします。

そして、再度アップデート。

むぅ・・・。

どうやら、SSL に対応した pycurl が必要な模様。

pycurl の SSL は上記で通過しましたが、今度は依存関係のエラーが出ちゃいました。

無理に全部のモジュールを最新にすることもないなってことで、この記事はここまでで。

気が向いたら解決というか、今後は python3.6 か 3.7 を使います。