“Python Environment” by xkcd
はじめに
- Pythonの仮想環境が作れるツールが多い。
- Pythonがインストールできる方法が多い。
- パッケージのインストールやプロジェクトの依存を管理してくれるツールも多い。
- あまり時間がないけど、とりあえずPythonの開発環境をいい感じにしたい。
参考にした記事
こういう環境を作ります
- なるべく公式推薦されているツールを使います。
- SystemのPythonは触らないです。
- 複数の異なるバージョンのPythonをインストールして使い分けることができる環境を作ります。
- プロジェクト毎にパッケージや依存の管理ができる環境を作ります。
Step 1: pyenv
- pyenvは複数の異なるバージョンのPythonをインストールできるツールです。
インストール
設定
- 以下を
~/.bash_profile
、または~/.bashrc
に追加
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
インストール可能バージョンを表示
3.6.6をインストール
Installed Python-3.6.6 to /Users/chris/.pyenv/versions/3.6.6
グローバルPythonの変更
# Global Pythonはまだ3.6.6になっていません
$ python --version
Python 2.7.15
# 変更します
$ pyenv global 3.6.6
$ python --version
Python 3.6.6
インストールされているPythonを表示
$ pyenv versions
system
* 3.6.6 (set by /Users/chris/.pyenv/version)
3.7.0も入れてmy_scripts
のPythonに設定する
注:以下はpipenv
を使わない場合の手順。pipenv
でプロジェクト管理する場合は以下を飛ばします。
# 3.7.0をインストール
$ pyenv install 3.7.0
# Project Directoryを作る
$ mkdir my_scripts && cd my_scripts
# 最初は3.6.6になっています
$ python --version
Python 3.6.6
# このDirectoryだけ3.7.0に設定
$ pyenv local 3.7.0
$ python --version
Python 3.7.0
# Directoryを変えるだけでバージョンが変わります
$ cd ..
$ python --version
Python 3.6.6
$ cd my_project/
$ python --version
Python 3.7.0
Step 2: pipenv
- プロジェクトやパッケージの管理をやってくれます。
- 公式推薦されています。
インストール
# pyenvでインストールしたPythonがGlobal Pythonになっています。
$ python --version
Python 3.6.6
# pipでpipenvをインストール。homebrewを使わないです。
$ pip install -U pipenv
# pyenvでインストールしたPythonのsite-packagesに入ります。
$ pip show pipenv
Name: pipenv
Version: 2018.10.13
Summary: Python Development Workflow for Humans.
Home-page: https://github.com/pypa/pipenv
Author: Kenneth Reitz
Author-email: me@kennethreitz.org
License: MIT
Location: /Users/chris/.pyenv/versions/3.6.6/lib/python3.6/site-packages
Requires: virtualenv, virtualenv-clone, setuptools, pip, certifi
Projectの新規作成を行う
$ mkdir new_project && cd new_project
$ pipenv install
Creating a virtualenv for this project…
Pipfile: /Users/chris/Workspace/new_project/Pipfile
Using /Users/chris/.pyenv/versions/3.6.6/bin/python3.6 (3.6.6) to create virtualenv…
⠙Already using interpreter /Users/chris/.pyenv/versions/3.6.6/bin/python3.6
Using base prefix '/Users/chris/.pyenv/versions/3.6.6'
New python executable in /Users/chris/.local/share/virtualenvs/new_project-g-JvAQrk/bin/python3.6
Also creating executable in /Users/chris/.local/share/virtualenvs/new_project-g-JvAQrk/bin/python
Installing setuptools, pip, wheel...done.
Virtualenv location: /Users/chris/.local/share/virtualenvs/new_project-g-JvAQrk
Creating a Pipfile for this project…
Pipfile.lock not found, creating…
Locking [dev-packages] dependencies…
Locking [packages] dependencies…
Updated Pipfile.lock (ca72e7)!
Installing dependencies from Pipfile.lock (ca72e7)…
🎃 ▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉ 0/0 — 00:00:00
To activate this project's virtualenv, run pipenv shell.
Alternatively, run a command inside the virtualenv with pipenv run.
パッケージをプロジェクトにインストール
仮想環境の中でシェルを起動
仮想環境の中でコマンドを実行
pipenv run python manage.py runserver
注意
- pyenvでインストールしたpythonのpipで入れたpipenvはそのバーションでしか使えないです。
$ pyenv install 3.6.6
$ pyenv install 3.7.0
$ pyenv global 3.6.6
$ python --version
Python 3.6.6
$ pip install pipenv
$ pip show pipenv
Name: pipenv
Version: 2018.10.13
Location: /Users/chris/.pyenv/versions/3.6.6/lib/python3.6/site-packages
$ pyenv global 3.7.0
$ pip show pipenv
[沈黙]
最後に
- 詳しいことは以下の記事に書いてありますのでご参照くださいー