Python
JavaScript
Node.js
npm
Pipenv

npm(javascript)とpipenv(python)の対応表

Pythonの世界でnpmと似たものが欲しい

node.jsやっててnpmなしでは生きていけない体になった人がpythonやるときに似たようなツールないかなー、と探したらpipenvがいいらしいのでよく使いそうな使い方をまとめてみた。

ちなみにnpmだとpackage.jsonがあるディレクトリ下を作業領域にするけど、pipenvPipfileがあるディレクトリでpipenv shellを実行して作業領域(仮想環境と呼ばれる)に入る。

対応表

npm init

npmではpackage.jsonを生成する。

$ pipenv install

Pipfileがない場合は新しくPipfilePipfile.lockを生成する。

npm install

npmではpackage.jsonに記述されたモジュールのインストールを行う。

$ pipenv install

Pipfileがある場合Pipfileに記述されたモジュールの仮想環境へのインストールを行う。

Pipfilepython_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

で仮想環境の削除ができる。


参考文献