Pythonの世界でnpmと似たものが欲しい
node.jsやっててnpm
なしでは生きていけない体になった人がpythonやるときに似たようなツールないかなー、と探したらpipenv
がいいらしいのでよく使いそうな使い方をまとめてみた。
ちなみにnpm
だとpackage.json
があるディレクトリ下を作業領域にするけど、pipenv
はPipfile
があるディレクトリでpipenv shell
を実行して作業領域(仮想環境と呼ばれる)に入る。
対応表
npm init
npm
ではpackage.json
を生成する。
$ pipenv install
Pipfile
がない場合は新しくPipfile
とPipfile.lock
を生成する。
npm install
npm
ではpackage.json
に記述されたモジュールのインストールを行う。
$ pipenv install
Pipfile
がある場合Pipfile
に記述されたモジュールの仮想環境へのインストールを行う。
Pipfile
のpython_version
にインストールされていないバージョンが指定されていたらインストールするかどうか聞かれて、自動インストールできるらしいけど試してみたところエラーで止まってしまった……。
npm install -g (モジュール名)
(多分)
$ pipenv install --system
※Python力が足りなくて適切な実験例が思いつかなかったので自信ない
npm install --save (モジュール名)
$ pipenv install (モジュール名)
特にオプションをつけなくてもPipfile
の[packages]
に追加してくれる。
npm install --dev (モジュール名)
$ pipenv install --dev (モジュール)
-d
でもOK。Pipfile
の[dev-packages]
に追加してくれる。
npm uninstall (モジュール名)
$ pipenv uninstall (モジュール名)
npm list [-g]
$ pipenv graph
ちなみに
$ pipenv check
で脆弱性チェックをしてくれるらしい。優秀すぎないか?
npm test
たぶん対応するコマンドはない?
npm run (任意)
たぶん対応するコマンドはない?
ありました(コメントで @tanamon さんに教えてもらった)。
[scripts]
printfoo = "python -c \"print('foo')\""
Pipfile
にこのように書いておいて
$ pipenv run printfoo
こうやって呼び出す。
その他
$ pipenv --rm
で仮想環境の削除ができる。