LoginSignup
0
1

More than 3 years have passed since last update.

MacでPythonの開発環境構築

Posted at

#pyenvのインストール

pyenvとは

pythonのバージョンを簡単に切り替えるて利用できるようにするツールです

Homebrewでpyenvをインストールする場合

% brew install pyenv

gitでpyenvをインストールする場合

% git clone git://github.com/yyuu/pyenv.git ~/.pyenv

pyenvを利用する前にターミナルで利用するシェルの確認

% echo $SHELL

/bin/bash か /bin/zsh が表示される

bashの場合

% vi ~/.bash_profile
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
if command -v pyenv 1>/dev/null 2>&1; then
  eval "$(pyenv init -)"
fi

% source ~/.bash_profile

zshの場合

% vi ~/.zshrc
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
if command -v pyenv 1>/dev/null 2>&1; then
  eval "$(pyenv init -)"
fi

% zsh -l

pyenvでpythonをインストールする

インストール可能なpythonのバージョンを確認し、インストールする

% pyenv install --list
% pyenv install 3.8.3
% pyenv install 3.8.2
% pyenv versions

pythonをインストールしてきた後はshimのリフレッシュをしておく。

% pyenv rehash

特定のディレクトリ配下で利用するpythonのバージョンを設定する

% pyenv local 3.8.2
% ls -lah
.python-version
% cat .python-version
3.8.2

全体で利用するpythonのバージョンを設定する

% pyenv global 3.8.3

バージョンの確認

% pyenv version

アンインストール

pyenv uninstall 3.8.2

pipの利用

pipとは

python標準のパッケージはたいていpythonをインストールする時点で
自動的にインストールされます。
サードパーティのパッケージは別途インストールが必要で、
PyPIという下記のサイトで配布されています。
https://pypi.org/
このサードパーティが配布しているパッケージをインストールするために、
pipを使ってパッケージの管理が行います。

pipのバージョンを確認する

% python -m pip list
Package    Version
---------- -------
pip        19.2.3
setuptools 41.2.0
WARNING: You are using pip version 19.2.3, however version 20.1.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

pipのバージョンアップ

% python -m pip install pip --upgrade
Collecting pip
  Using cached https://files.pythonhosted.org/packages/43/84/23ed6a1796480a6f1a2d38f2802901d078266bda38388954d01d3f2e821d/pip-20.1.1-py2.py3-none-any.whl
Installing collected packages: pip
  Found existing installation: pip 19.2.3
    Uninstalling pip-19.2.3:
      Successfully uninstalled pip-19.2.3
Successfully installed pip-20.1.1

pipenvの利用

pipenvとは

Pipenvは、Python公式が正式に推薦する依存関係管理・パッケージングのためのツールです。

pipenvのインストール

% pip install pipenv

pipenvの利用方法

プロジェクト「project1」を作成する

% mkdir /develop/python/tutorial/project1
% cd /develop/python/tutorial/project1

プロジェクトでpython3.8.3を利用するとする

% pipenv --python 3.8.3
% ls -lah
 Pipfile

numpyパッケージをインストールする

% pipenv install numpy
% ls -lah
 Pipfile
 Pipfile.lock

Pipfileに利用するパッケージの情報が書かれている

% cat Pipfile
[[source]]
name = "pypi"
url = "https://pypi.org/simple"
verify_ssl = true

[dev-packages]

[packages]
numpy = "*"

[requires]
python_version = "3.8"

Pipfile.lockにインストール済みパッケージの詳細が書き込まれる

% cat Pipfile.lock
{
    "_meta": {
        "hash": {
            "sha256": "b59842a2e4aca58430e4c67380e4d495bd0cb8b31d65c29e51235c48f9456e4b"
        },
        "pipfile-spec": 6,
        "requires": {
            "python_version": "3.8"
        },
        "sources": [
            {
                "name": "pypi",
                "url": "https://pypi.org/simple",
                "verify_ssl": true
            }
        ]
    },
    "default": {
        "numpy": {
            "hashes": [
                "sha256:13af0184177469192d80db9bd02619f6fa8b922f9f327e077d6f2a6acb1ce1c0",
                "sha256:26a45798ca2a4e168d00de75d4a524abf5907949231512f372b217ede3429e98",
                "sha256:26f509450db547e4dfa3ec739419b31edad646d21fb8d0ed0734188b35ff6b27",
                "sha256:30a59fb41bb6b8c465ab50d60a1b298d1cd7b85274e71f38af5a75d6c475d2d2",
                "sha256:33c623ef9ca5e19e05991f127c1be5aeb1ab5cdf30cb1c5cf3960752e58b599b",
                "sha256:356f96c9fbec59974a592452ab6a036cd6f180822a60b529a975c9467fcd5f23",
                "sha256:3c40c827d36c6d1c3cf413694d7dc843d50997ebffbc7c87d888a203ed6403a7",
                "sha256:4d054f013a1983551254e2379385e359884e5af105e3efe00418977d02f634a7",
                "sha256:63d971bb211ad3ca37b2adecdd5365f40f3b741a455beecba70fd0dde8b2a4cb",
                "sha256:658624a11f6e1c252b2cd170d94bf28c8f9410acab9f2fd4369e11e1cd4e1aaf",
                "sha256:76766cc80d6128750075378d3bb7812cf146415bd29b588616f72c943c00d598",
                "sha256:7b57f26e5e6ee2f14f960db46bd58ffdca25ca06dd997729b1b179fddd35f5a3",
                "sha256:7b852817800eb02e109ae4a9cef2beda8dd50d98b76b6cfb7b5c0099d27b52d4",
                "sha256:8cde829f14bd38f6da7b2954be0f2837043e8b8d7a9110ec5e318ae6bf706610",
                "sha256:a2e3a39f43f0ce95204beb8fe0831199542ccab1e0c6e486a0b4947256215632",
                "sha256:a86c962e211f37edd61d6e11bb4df7eddc4a519a38a856e20a6498c319efa6b0",
                "sha256:a8705c5073fe3fcc297fb8e0b31aa794e05af6a329e81b7ca4ffecab7f2b95ef",
                "sha256:b6aaeadf1e4866ca0fdf7bb4eed25e521ae21a7947c59f78154b24fc7abbe1dd",
                "sha256:be62aeff8f2f054eff7725f502f6228298891fd648dc2630e03e44bf63e8cee0",
                "sha256:c2edbb783c841e36ca0fa159f0ae97a88ce8137fb3a6cd82eae77349ba4b607b",
                "sha256:cbe326f6d364375a8e5a8ccb7e9cd73f4b2f6dc3b2ed205633a0db8243e2a96a",
                "sha256:d34fbb98ad0d6b563b95de852a284074514331e6b9da0a9fc894fb1cdae7a79e",
                "sha256:d97a86937cf9970453c3b62abb55a6475f173347b4cde7f8dcdb48c8e1b9952d",
                "sha256:dd53d7c4a69e766e4900f29db5872f5824a06827d594427cf1a4aa542818b796",
                "sha256:df1889701e2dfd8ba4dc9b1a010f0a60950077fb5242bb92c8b5c7f1a6f2668a",
                "sha256:fa1fe75b4a9e18b66ae7f0b122543c42debcf800aaafa0212aaff3ad273c2596"
            ],
            "index": "pypi",
            "version": "==1.19.0"
        }
    },
    "develop": {}
}

開発環境用のパッケージをインストールする

$ pipenv install --dev ptvsd pytest

パッケージをアップデートする

$ pipenv update pytest

パッケージをアンインストールする

$ pipenv uninstall --all

開発用のパッケージのみアンインストールする

$ pipenv uninstall --all-dev

PipfileとPipfile.lockの再利用

Pipfileの利用

Pipfileをもとにパッケージをインストールします。
このときにインストールした内容でPipfile.lockが更新されます.

$ pipenv install

開発用のパッケージもインストールしたい場合は--devをつける

$ pipenv install --dev 

Pipfile.lockの利用

Pipfile.lockをもとにパッケージをインストールします。

$ pipenv sync

開発用のパッケージもインストールしたい場合は--devをつける

$ pipenv sync --dev 
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