0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

EnvaderでPythonの環境構築を学んだのでmacOSで実践してみる(第6回)

Last updated at Posted at 2022-04-24

はじめに

はじめましてa-min3150です。エンジニアへの転職を目標に学習中です。
アウトプットのためEnvaderで学習したこと、ハマったことなどを書いていきたいと思います。

今回の学習内容

EnvaderでPythonの環境構築について学習したのでアウトプットします。

今回は第6回目でmacOSでのrequirements.txtの使い方についてです。

第1回(Pythonとは)はこちら
第2回(pyenvについて)はこちら
第3回(pipについて)はこちら
第4回(venvについて)はこちら
第5回(virtualenvについて)はこちら
第7回(git cloneの使い方)はこちら

requirements.txtとは

第3回目のpipの使い方の時にも出てきたrequirements.txtですがこれは「パッケージの名前とバージョンの一覧の控えを取っておく」ものであると解説しました。

いつ使うのか?

GitHubに共有したり、本番環境に反映させるときなどに、パッケージの名前とバージョンも共有しておく必要がある場合にrequirements.txtが利用されます。

共有しないと環境が変わった時にいちいちバージョンを確認して一つずつインストールしたり、正常に動作しなかったりと様々な問題が発生しかねません。

パッケージによっては、他のパッケージのあるバージョンには対応しておらず、アップデートしたときに正常に動作しない場合もあるため、正常に動作したときのバージョンで必ず作成しておきましょう。
(ファイル名は特に決まってないですが、基本的にはrequirementsという名前が使用されます)

ファイルの作成

ターミナルでファイルを作成したディレクトリに移動してコマンドを実行します。

pip freeze > の後にrequirements.txtとすることでファイルを作成できます。

$ pip freeze > requirements.txt
# requirements.txt の中身
alembic==1.7.5
app==0.0.1
bcrypt==3.2.0
captcha==0.3
certifi==2021.10.8
cffi==1.15.0
charset-normalizer==2.0.9
virtualenv<20.10.0, >19.0.0
・・・・・・

バージョンを指定しない場合はインストールするときに最新版がインストールされます。
==, >= , >, <=, <, != などでバージョンを指定し、カンマで区切ることでAND 条件を指定し二つのバージョンをインストールできます。

ファイルのインストール

他の環境に移した時やcloneしたとき、バージョンを以前の状態に戻したいときにrequirements.txtをインストールします。

pip install の後に -r オプションと requirements.txtとすることでパッケージと指定したバージョンを一括でインストールできます。

$ pip install -r requirements.txt

macOSで実践してみる

第3回目の時にFlaskをインストールした時に作成したrequirements.txtがあるのでこれを別のディレクトリにコピーして中身のパッケージをインストールしてみましょう。
デスクトップ上に「test」というディレクトリを作成し、そこに移動する。

 macOS:Desktop user$ mkdir test && cd $_

cpコマンドを使って第3回目で作ったディレクトリの中からrequirements.txtを「test」ディレクトリへコピーする。
(cpコマンドの使い方についてはこちら)

 macOS:test user$ cp ../test_venv/requirements.txt ./
 macOS:test user$ ls
requirements.txt

requirements.txtの中身を確認する。

macOS:test user$ cat requirements.txt 
click==8.1.2
Flask==2.0.3
itsdangerous==2.1.2
Jinja2==3.1.1
MarkupSafe==2.1.1
Werkzeug==2.1.1

仮想環境を起動する。(今回はvenv)

macOS:test user$ python -m venv venv//「venv」という仮想環境を作成。
macOS:test user$ ls//「venv」というディレクトリが作成されたことを確認する。
requirements.txt	venv
macOS:test user$ source venv/bin/activate//仮想環境を起動する。
(venv) macOS:test user$ //(venv)となり、起動できた

仮想環境を起動した状態でrequirements.txtをインストールすることで特定のディレクトリのみにインストールされるため、システム全体に影響しないようになります。

(venv) macOS:test user$ pip install -r requirements.txt 

pip listでインストールされたものを確認する。

(venv) macOS:test user$ pip list
Package      Version
------------ -------
click        8.1.2
Flask        2.0.3
itsdangerous 2.1.2
Jinja2       3.1.1
MarkupSafe   2.1.1
Werkzeug     2.1.1

このようにrequirements.txtファイルを使ったインストールを行えるようになれば、チーム開発をする時に他の人が作った環境をそのまま自身のPCへ作ることができるようになるので大変便利です。

まとめ

今回はrequirements.txtファイルについて解説しました。

ファイルの作成

$ pip freeze > requirements.txt

ファイルのインストール

$ pip install -r requirements.txt

とても大事なファイルなので、しっかりと使い方や役割を覚えておきましょう。

次回はgit cloneの使い方についてです。

引用サイト

0
0
0

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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?