4
4

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

MacでPythonの開発環境構築をわりと楽にできる方法(2018年版)

Last updated at Posted at 2018-10-30

python_environment.png
“Python Environment” by xkcd

はじめに

  • Pythonの仮想環境が作れるツールが多い。
  • Pythonがインストールできる方法が多い。
  • パッケージのインストールやプロジェクトの依存を管理してくれるツールも多い。
  • あまり時間がないけど、とりあえずPythonの開発環境をいい感じにしたい。

参考にした記事

こういう環境を作ります

  • なるべく公式推薦されているツールを使います。
  • SystemのPythonは触らないです。
  • 複数の異なるバージョンのPythonをインストールして使い分けることができる環境を作ります。
  • プロジェクト毎にパッケージや依存の管理ができる環境を作ります。

Step 1: pyenv

  • pyenvは複数の異なるバージョンのPythonをインストールできるツールです。

インストール

brew install pyenv

設定

  • 以下を~/.bash_profile、または~/.bashrcに追加
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"

インストール可能バージョンを表示

pyenv install --list

3.6.6をインストール

pyenv install 3.6.6
  • $HOMEの下にインストールされます
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 install django

仮想環境の中でシェルを起動

pipenv shell

仮想環境の中でコマンドを実行

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

[沈黙]

最後に

4
4
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
4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?