##はじめに
プログラミングのまったくの初心者が覚書として
そしてまたほかの初心者の方のお役に立てればと思い投稿させていただきました
###環境構築とは
環境構築とはすなわちお仕事をするときに作業スペースを整えること
新しいプロジェクトに必要な機材を導入したり、前回使っていた道具や書類は作業台から片付けて、今回の仕事に必要なものを持ってくる、そんなイメージ
とりあえずよくわからない人ははじめのうちはコピペで十分だと思います。(正直自分もよくわかってない)
###前提
- macOS High Sierra 10.13.4
- Python 3.6.5
下記のMacOS用パッケージ管理システムは四の五の言わずインストール
- pip
- Homebrew
pipはデフォルトで入ってるかと思います
インストールされていれば$ pip --version
でバージョン確認ができる
Homebrewはコチラにアクセスをして
サイト上に書かれているコード/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
をターミナルに打ち込みインストール
$ brew --version
でバージョンを確認できればインストール成功
これで下準備はOK
###仮想環境を設定
仮想環境とは作業部屋のこと
Python2で仕事がしたいときは「A」のお部屋
Python3とDjangoを使用したいときは「B」のお部屋、というように仮想環境をその都度設定してあげれば部屋移動することによって環境が切り替わって便利
仮想環境を作成するのに使用するツールは
- pyenv
- virtualenv
- pyenv-virtualenv
だいたいみんなこれ使ってるみたい
##pyenv
PC内で異なるバージョンのPythonを管理するための**「バージョン管理ツール」**
Python2
,Python3
といった大枠だけでなく2.4
・2.4.1
・3.2
といった細かいバージョンを指定できる
#####pyenvインストール
$ brew install pyenv
pyenvのバージョン確認
$ pyenv --version
pyenv 1.2.4
これをターミナルログイン時に起動させる設定
ホームディレクトリにある隠しファイル(ドットファイル)の.bash_profile
に下記を書き込みます
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
このあと.bash_profileファイルを抜けて$ source ~/.bash_profile
とコマンドすることにより内容が反映される
このPATH設定には.bash_profile
や.bashrc
などいろいろと種類があるみたいでややこしいので
今はこれをやっておけば自動的に起動しますよ、っていう認識で次いきます
#####pyenvで使用するPythonバージョンのインストール
$ pyenv install -l # インストール可能なバージョンを確認
Available versions:
2.1.3
2.2.3
2.3.7
2.4 etc.
# 目的のバージョンをインストール
$ pyenv install 2.1.3
$ pyenv install 3.6.5
$ pyenv rehash # 新規インストールした後はこのコマンドを実行する必要があるそうです
# インストールされたバージョンを表示
$ pyenv versions
* system (set by /Users/shoshinsya/.pyenv/version) # 現在の位置に*がついている
2.1.3
3.6.5
#####バージョンの切り替え
$ pyenv global 3.3.5
$ python -V
Python 3.3.5
# 特定のディレクトリ内のみ切り替えたい場合
$ mkdir xxx
$ cd xxx # 目的のディレクトリに移動
$ pyenv local 2.1.3
$ python -V
Python 2.1.3
$ cd
$ pyenv -V
Python 3.3.5 # ディレクトリを抜けると globalに戻る
# local設定を解除
$ pwd
/Users/pythonbeginner/xxx
$ pyenv local --unset
$ pyenv -V
Python 3.3.5 # global設定が適応される
#####バージョンの削除
$ pyenv uninstall 2.1.3
pyenv: remove /Users/shoshinsya/.pyenv/versions/2.1.3?
# ここで y(yes) と入力してエンターキー
$ pyenv versions #削除されているかを確認
system
* 3.6.5 (set by /Users/shoshinsya/.pyenv/version) #2.1.3の表示がない
他にもコマンドがあるみたいだけど、これくらいで大丈夫だと思う
##virtualenv
Python環境を管理するための**「仮想環境管理ツール」**
上記の pyenv とちがう点は、同一バージョンの中でも異なる環境を設定できるところ
(なのでこれだけでも十分なのでpyenvは必要なし?)
#####virtualenvインストール
$ pip install virtualenv
$ virtualenv --version # virtualenvのバージョン確認
15.2.0
#####仮想環境の作成
$ mkdir xxx
$ cd xxx # 目的のディレクトリに移動
$ virtualenv yyy # 仮想環境作成
$ ls
yyy/
# 仮想環境"yyy"を有効化(activate)
$ source xxx/bin/activate
(yyy) $ # 文頭にactivate されている仮想環境名が表示される
(yyy) $ pip list # 現在インストール済みパッケージを一覧表示する
Package Version
---------- -------
pip 10.0.1
setuptools 39.1.0
wheel 0.31.0
# 新たなパッケージインストール
(yyy) $ pip install django==1.10.3
(yyy) $ pip list
Package Version
---------- -------
Django 1.10.3
pip 10.0.1
setuptools 39.1.0
wheel 0.31.0
# 仮想環境を無効化(deactivate)
(yyy) $ deactivate
$ pip list
Package Version
---------- -------
pip 10.0.1
setuptools 39.1.0
wheel 0.31.0 # 元の環境に戻る
##pyenv-virtualenv
こちらは上記二つの合体版のような感じ?
ちなみにvirtualenvとpyenv-virtualenvは別物
#####pyenv-virtualenvのインストール
$ brew install pyenv-virtualenv
$ pyenv-virtualenv --version # pyenv-virtualenvのバージョン確認
1.1.1
今回は.bash_profileに下記を書き込みます
eval "$(pyenv virtualenv-init -)"
忘れずに$ source ~/.bash_profile
も
#####仮想環境の作成
$ pyenv versions # 現在インストールされているPythonバージョン
* system (set by /Users/shoshinsya/.pyenv/version)
2.1.3
3.6.5
# 仮想環境作成
$ pyenv virtualenv 3.6.5 aaa # 3.6.5のバージョンで"aaa_django"という名前の環境を作成
$ pyenv virtualenv 2.1.3 bbb # 2.1.3のバージョンで"bbb_flask"という名前の環境を作成
# 仮想環境を表示
$ pyenv virtualenvs
aaa_django (created from /Users/shoshinsya/.pyenv/versions/3.6.5)
bbb_flask (created from /Users/shoshinsya/.pyenv/versions/2.1.3)
$ pyenv versions # こちらでも確認できる
* system (set by /Users/shoshinsya/.pyenv/version)
2.1.3
3.6.5
aaa_django
bbb_flask
#####環境の切り替え
# pyenvと同様に切り替ればOK
$ pyenv global aaa_django
(aaa_djangi) $ # 文頭に環境名
(aaa_django) $ pip install django
(aaa_django) $ pip list # この環境でインストールされているパッケージを一覧表示する
Package Version
---------- -------
Django 1.10.3
pip 10.0.1
setuptools 39.1.0
wheel 0.31.0
# 特定のディレクトリ内のみ切り替えたい場合も同様
(aaa_django) $ mkdir xxx
(aaa_django) $ cd xxx
(aaa_django) $ pyenv local bbb_flask
(bbb_flask) $ pip list
$ pyenv local bbb_flask
(bbb_flask) $
(bbb_flask) $ pip install flask
(bbb_flask) $ pip list
Package Version
---------- -------
Flask 1.0.2 # aaa_django環境ではないのでdjangoは入っていない
pip 10.0.1
setuptools 39.1.0
wheel 0.31.0
# local解除も同様に $ pyenv local --unset
#####バージョンの削除
# これもpyenvと同様
$ pyenv uninstall aaa_django
pyenv: remove /Users/shoshinsya/.pyenv/versions/aaa_django?
# ここで y(yes) と入力してエンターキー
$ pyenv versions #削除されているかを確認
* system (set by /Users/shoshinsya/.pyenv/version)
2.1.3
3.6.5
bbb_flask
少々長めになってしまいました...
これらのツールを使えば新しいアプリケーションを製作したいときに、前と同じ環境下で作業したい場合やちがう環境で新しいパッケージを導入したい場合など、その都度目的にあった仮想環境を整えることができるようになります!
今回は以上です
(認識がまちがっている部分もあると思うのでそのときはどんどんツッコミお願いします)
##参考