Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
25
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

@moomooya

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

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


参考文献

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
25
Help us understand the problem. What are the problem?