0
1

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 3 years have passed since last update.

Python3で仮想環境の構築

Posted at

はじめに

 pythonの軽量モジュールである'venv'を使用した環境構築を説明します。
仮想環境を用いた開発をすることにより、プロジェクトで使用しているライブラリ・パッケージが明確化されます。
ローカルで開発をするとローカル環境に余計なライブラリや以前使ったライブラリが残っていたりして、他のマシンにデプロイした際にうまく動かないケースがあるので、仮想マシンなどを使用してプロジェクトを作成し、その中で開発をすると使用するライブラリやパッケージがはっきりし、他のマシン、チーム開発での際に共有もしやすくなる。

環境

  • python3系

仮想環境の作成

※ python3系がインストールしていることを前提とします。

  • macの場合
python
# 仮想環境作成
$ python3 -m venv name # nema: 環境名
# 仮想環境の有効化
$ source venv/bin/activate

# 仮想環境の無効化
$ deactivate
  • windowsの場合
python
# 仮想環境作成
$ python -m venv name # nema: 環境名
# 仮想環境の有効化
$ source venv/Script/activate

# 仮想環境の無効化
$ deactivate

ライブラリのインストール

ここからはローカルでインストールするやり方と同じです。

ライブラリのインストール

例えば'numpy'をインストールする場合は以下のようにします。

※以下、シンボリックリンクを'python3 & pip3'で設定しているという前提で説明する。
※'python & pip'で設定している場合は以下の'pip3'を'pip'に変更して実行してください。

python
(venv)$ pip3 install numpy

インストール済みのライブラリ確認

python
(venv)$ pip3 list

ライブラリの削除

python
(venv)$ pip3 uninstall numpy

ライブラリ・パッケージの管理

設定ファイル[requirements.txt]を使用することにより、インストールされているライプラリ・パッケージのバージョン管理、及び一括インストールができます。
この設定ファイルを使用することにより、一つ一つライブラリをインストールする手間を省けます。

インストールされているライブラリのファイル化

python
(venv)$ pip3 freeze > requirements.txt

実行したディレクトリに'.txt'ファイルが作成される。

設定ファイルのインストール

python
(venv)$ pip3 install -r requirements.txt

この実行により、設定ファイルに書かれているパッケージを全てインストールすることができる。

設定ファイル:例
###### Requirements without Version Specifiers ######
numpy
pandas

###### Requirements with Version Specifiers ######
numpy === 1.14.1
pandas === 0.22.0

まとめ

今回は仮想環境の'venv'をざっと簡単にまとめてみましたが、他にも仮想環境はいろいろあります。
例えば、pyenv, conda
これから、pythonの開発を行う際にお役に立てばと思います。。。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?