\

Pythonのプロジェクトは、その環境そのものと言えます。そのため、システムにpipでパッケージをインストールしていくと、移植するときに何が必要かわからなくなることがあります。そこで、Python標準で用意されているvenvとpipを使って、仮想環境を作成しましょう。

venvとは

venvはPython標準の仮想環境です。Pythonには他にもVirtualenvやpyenvなどがありますが、venvは公式が推奨しているため、最も手軽に仮想環境を管理する方法の一つと言えます。

仮想環境の構築

まずは適当にプロジェクトのディレクトリを作ります。ここでは project1 とでもしておきましょう。次に project1 へ入り、次のコマンドを実行します。

python -m venv test_env

ここで test_env は好きな名前にすることができます。うまくいくと project1/test_env というディレクトリができます。

仮想環境に入る

このとき仮想環境は作られるが、まだ有効になっていないので有効化する必要があります。シェルセッションを立ち上げて最初は必ず入る必要があります。test_envの中にある Script に仮想環境を有効化するコードがあります。

# bash
Scripts/activate

# windows(コマンドプロンプト)
.\\Scripts\\activate.bat

# windows(Powershell)
.\\Scripts\\Activate.ps1

うまく有効化されると、プロンプトが下記のようになります。

(test_env) user@host:/path/to/project1 $

環境をいじっていく

といってもpipが使えます。pipでガシガシ入れていきましょう。たとえばtensorflowの1.13.1を入れてみましょう。

pip install tensorflow==1.13.1

そのあと、 pip list してみると、インストールされたライブラリが表示されます。

仮想環境から出る

シェルに応じて、Scripts以下のdeactivateという名前のスクリプトを実行します。Powershellの場合、単に「deactivate」と唱えるだけでよいです。

環境を移植する

ここから、仮想環境の真骨頂である移植に入ります。

requirements.txtの作成

移植元の環境で次のコマンドを唱えます。

pip freeze > requirements.txt

requirements.txtからインストール

新しい環境へrequirements.txtをコピーします。そしてpipで次を唱えます。

pip install -r requirements.txt

すると、pip freezeで出力されたライブラリがすべてインストールされ、移植は完了します。

まとめ

venvを使えば、requirements.txtだけで移植できる環境を作ることができます。これにより、Pythonのプロジェクトを効率的に管理し、移植することが容易になります。.

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です