追記
2016/11/08 訳されていなかった文章を訳しました。(pip download
の追加オプションについての項)
pip 9.0.0
pyenvで新しい仮想環境作ってpip使った時に教えてくれました。
興味あったしどういう変更があったか調べました。
2系とのお別れの日が近づいている
[Distutils] Released: pip v9.0.0
どうやら9.x系がPython2.6に対応する最後のバージョンになるらしいです。
- The 9.x series will be the last pip versions to support Python 2.6.
更新点一覧
Release Notes — pip 9.0.1 documentation
このバージョンより前には後方互換性がなくなります。
自動検出をしないので、egg使いたい時は#egg=
ってちゃんと書かないといけなくなりました。pip install --egg
が非推奨なものになった上に、そのうちegg自体の機能が削除されるようになるらしいです。
eggはpipの他の機能のメリットをぶち壊すようなデメリットをたくさん持ってるから、だそうです。pip check
という、インストールされているパッケージの依存関係をチェックしてくれるコマンドが標準でインストールされるようになりました(PR #3750)。pipコマンドの操作中で既にファイル/ディレクトリが存在する際、ユーザーの操作を中止させることができるオプションが追加されました。
Appveyor CIが追加されました。(?)
インストールするパッケージが既に存在しているパッケージの場合、既存のパッケージをアンインストールするようになりました(#1548)。
pip show
のデフォルトの表示がすっきりしました。–verboseオプションをつけるといつもどおりになります。(PR #3858)
$ pip show flask Name: Flask Version: 0.11.1 Summary: A microframework based on Werkzeug, Jinja2 and good intentions Home-page: http://github.com/pallets/flask/ Author: Armin Ronacher Author-email: armin.ronacher@active-4.com License: BSD Location: ふぁいるtoぱす Requires: click, Werkzeug, Jinja2, itsdangerous
pip list
のフォーマットに新しいフォーマットcolumns
が追加されました(#3651)。
$ pip list --format columns Package Version ------------- ------- click 6.6 Flask 0.11.1 itsdangerous 0.24 Jinja2 2.8 MarkupSafe 0.23 mecab-python3 0.7 pip 9.0.0 requests 2.11.1 setuptools 18.2 Werkzeug 0.11.11
- また、
pip list
のデフォルトのフォーマットであるlegacy
が非推奨になり、そのうちデフォルトのフォーマットがcolumns
に切り替わるそうです。
$ pip list DEPRECATION: The default format will switch to columns in the future. You can use --format=legacy (or define a list_format in your pip.conf) to disable this warning.
pip list
に--not-required
という、依存関係にないもののみを表示するようなオプションが追加されました。
$ pip list --format columns Package Version ------------- ------- click 6.6 Flask 0.11.1 itsdangerous 0.24 Jinja2 2.8 MarkupSafe 0.23 mecab-python3 0.7 pip 9.0.0 requests 2.11.1 setuptools 18.2 Werkzeug 0.11.11 $ pip list --format columns --not-required Package Version ------------- ------- Flask 0.11.1 mecab-python3 0.7 pip 9.0.0 requests 2.11.1 setuptools 18.2
ビルド時にシンボリックリンクとかの相対的なファイルパスではなく、
os.path.realpath
を使った絶対的なファイルパスを使用するようになりました(PR #3701)。(これ訳自信ない)pip freeze
の回帰修正: 1つより多い数のgitのremoteがある場合、リモートの名前がorigin
のものを優先するようになりました(PR #3708, #3616)。pip freezeした時、おかしい(invalidな)requirementのものがあるときにクラッシュする問題が修正されました(PR #3704, #3681)。
複数のファイルに
pip freeze
した結果を分割して書き出せるようになりました(PR #3703)。(ここ訳自信ない)pep-503
data-requires-python
を実装しました。pip wheelが
editable packages
としても動くようになりました。このおかげでeditable requirementsの場合にpip freeze
にwheelの実行結果が使えるようになりました(PR #3695, #3291)。pip download
に--platform
、--python-version
、--implementation
、--abi
が追加されました。
これらのオプションで、utilitiesとadvanced usersは今pipが動いている環境用ではないディストリビューションを収集することができるようになります(PR #3760)。(訳自信ない)venv/bin/python
がシンボリックリンクを持っていてもvirtual envの環境のスキャンをしなくなりました。fish-shellの補間に対応しました。
Windows上のPython2にて、ユーザー名もしくはホスト名がnon-ASCIIな文字を含んでいた時の問題を修正しました(#3463, PR #3970, PR #4000)。
git fetch --tags
でtagをfetchするようになりました。ブランチにないコミットまたはタグがrequirementのurlとして指定されたとき用(PR #3791)。(これまじで自信ない)pip show
でパッケージ名を正規化するようになりました(#3976)。Requires-Pythonが実行しているPythonのバージョンと食い違っている場合または
--ignore-requires-python
オプションが付けられていない場合Raiseするようになりました(PR #3846)。へんなケース(corner case)でアップグレードを実行した時、正確なインストールされたバージョンを報告するようになりました(#2382)。
pip search
において、--index
に-i
という簡略記法を追加しました。SVNのurlにおいて、認証部分(ユーザーネーム、パスワードの部分)をカットするようになりました(PR #3697, #3209)。
--target
オプションをつけることでplatlib内にもインストールするようになりました(PR #3694, #3682)。pip freeze
で作成されたrequirements.txt
にコメントをつける機能を復元しました(#3680)。(ここ訳自信ない)
(requirements.txtにコメントできないようにしたものを出来るようになおしたのかもしれないです。)--default-vcs
オプションが非推奨になりました(#4052)。
基本的に心配な和訳能力なので、違うような部分がありましたらぜひとも教えていただきたいです。
所感
pipっていつも使ってるものだから、むしろ更新にあまり気を取られなかったけど、今回みたいに更新点とかしっかり把握したほうがより親身になるんだろうなって思いました。
pip list
にフォーマットがあること知らなかったし、pip download
とpip show
においては存在すら知らなかったし、結構勉強になりました。
pip show
の便利感がすごい。
あと多分pip list --format=freeze --not-required
するとrequirements.txt
の記述もスッキリするんじゃないかって思いました。それが良いかどうかは置いときます。