3
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Pipenvでシステムに直接インストールしたり、requirements.txtを出力したり

Last updated at Posted at 2021-03-24

Pythonのパッケージ管理は何を利用していらっしゃいますか?
私はPipenvです。Pipenvの操作はわかりやすく、とても助かります。

Pipenvの解説は@y-tsutsuさんの「Pipenvを使ったPython開発まとめ」が大変参考になります

上記記事で取り上げていない、Pipenvの便利な機能の紹介を本記事でします。

取り上げた内容は以下の2本です。

  • Pipenvを使って、システムに直接インストールする
  • Pipenvで使っているパッケージをrequirements.txtに出力する

Pipenvでシステムに直接インストールする - コンテナで利用するときなど

コンテナ環境を用意してPythonを実行する場合、すでにコンテナによって隔離されているのでPythonの仮想環境を作成する必要はありません。--systemオプションで直接システムに直接インストールしましょう。

$ pipenv install --system

Pipfile.lockに指定されたバージョンをインストールするsyncでも利用できます。

$ pipenv sync --system

Pipfile.lockで指定されたバージョンが古く、pipenv installでインストールしたバージョンと違った時、インストールをやめることもできます。

$ pipenv install --system --deploy

こうすることで古いパッケージを利用したままデプロイしてしまうのを回避できます。ただこれは良い点悪い点があると思うので、各自で判断してください。

Dockerfile サンプル

FROM python:3.8

WORKDIR /app
COPY . /app
RUN pip install pipenv && \
    pipenv sync --system && \
    pip uninstall --yes pipenv

requirements.txt を出力する

互換性のためにrequirements.txtを出力する必要があるときもあります。

lock -rrequirements.txtを作成できます。

$ pipenv requirements > requirements.txt

開発環境を含めて出力する場合は以下になります。

$ pipenv requirements --dev > requirements.txt

本番用とdev用のrequirements.txtを分割する方法もあります。--dev-onlyオプションを利用します。

$ pipenv requirements > requirements.txt
$ pipenv requirements --dev-only > dev-requirements.txt

以上です。みなさんの参考になれば嬉しいです。

参考

3
5
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?