Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

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

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


参考文献

moomooya
React+Flaskでなにか考えてたけど、FirebaseならTypeScriptだけでいいや。 パブリックなアウトプットを減らしてコード書く年にする。
http://www.slideshare.net/isamusuzuki54
rakus
「IT技術で中小企業を強くします!」というミッションを掲げ、中小企業の業務効率化に貢献する複数のクラウドサービスを提供しているIT企業です。「楽楽精算」「メールディーラー」など、国内トップシェアを誇る複数のサービスを開発し、累計導入社数は5万社を超えています。次の時代の"楽"を創るための、まだ見ぬサービスや機能を生み出す取り組みは、今日も続いています。
https://www.rakus.co.jp/
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
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  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
ユーザーは見つかりませんでした