【python3】仮想環境を使え。という話とvenvの使い方。

わたしへ。
「venv 使い方」「venv 作り方」「venv アクティベート」で何回検索するのですか。
わたしより。

結論

venvを使うぞ。インストールはpython3系入っていれば不要。
python2系を使いたい時は調べてくれ。

新しい環境を作る

そのプログラムに関するファイルをまとめておくフォルダ(=プロジェクトフォルダ)直下で、

$ python -m venv .venv

「.venv」は環境名なので任意だけど統一しとくといいよ。あとが楽だよ。

アクティベート

.venvフォルダがある階層で(Windows)

$ .venv\Scripts\activate

Windows以外なら

 $ .venv/bin/activate


仮想環境とは

プログラムごとに使いたいモジュール違うじゃん。
ローカルでごにょごにょしてるだけならまあ最悪モジュールだらけになってても良いけど、サーバーに乗っけるぞ~とかになると途端に「で、このプログラムにはどのモジュールが絡んでんの?」って話になるじゃん。
わっかんなーい★」って訳には行かないじゃん。

そんなとき、「このプログラムにはこのモジュール使ってるよ!」っていうのをフォルダにまとめといて、そのプログラム動かすときはそのフォルダの中身だけ使う!って決めてあれば楽だなーって思うじゃん。

それが仮想環境です。やったね便利だ。

アクティベートとは

「ヘイpython! 今からこのフォルダの中身のモジュールだけ使うからな!」

仮想環境にパッケージをインストールするには

仮想環境をアクティベートした状態でpip install

今この仮想環境に何がインストールされてんの?

アクティベートして

$ pip freeze

追記:requirements.txtでモジュールを一括インストール

参考→ Python, pipでrequirements.txtを使ってパッケージ一括インストール | note.nkmk.me

pip freeze して書きだしたモジュール一覧をテキストファイルに貼り付けて、requirements.txtと言う名前で保存しておく。

そして、

$ pip install -r requirements.txt

すると、必要なモジュールが一気にインストールされる。

複数人で開発する時などはこれを作って置けば、一々「あーあのモジュールも要るのかー」「あーまたモジュール足んねぇ~!」みたいなことする必要が無くなる。

一人開発のときも、.venvの中身をgitで管理してたら大変な容量になっちまうので、.venvフォルダの中身は管理から外すのがデフォだけど、requirementsだけ作って置けばどのモジュールいつ足したかの管理が出来るので、やっぱり作って置くとよき。

あと、GCPに上げる時などは、サービスに寄ってはrequirements.txtと言う名前で用意しておけば自動的にモジュールインストールしてくれたりするので、やっぱり作って置くと便利。

この記事が気に入ったらサポートをしてみませんか?