過去ネタ供養 2 : Python (+ Docker) 環境構築手順
過去ネタ供養の連載その2。2019-11-03 頃に某プロジェクトで Python 開発環境を作ろうという話になって、その時の手順書などを Gist に上げていた。
Python 3.7 環境を作るのだが、それを Docker コンテナとして用意するか、ホストマシンにインストールするか、というのを選択できるようにしていた。
目次
必要な作業を割り出すフローチャート
- Docker 使う?
- → 使う
- Docker 入れる
- Python の Docker イメージを落としてくる
- → 使わない
- OS に Python 入れる
- Windows の場合は必要に応じて Git Bash (or Git SDK) も入れる
- → 使う
OS に直接 Python 3.7 をインストールする手順
Windows OS の場合
以下の3つの方法があるのでお好きに。
- Python.org の公式から落としてインストールする
- https://www.python.org/downloads/release/python-375/
- v3.7.5 あたりでいいんじゃないですかね
- Chocolatey が入っていれば Chocolatey でインストールする (楽)
PS1> choco install python3 --version=3.7.5
- もしくは、GitBash (Git For Windows) の上位互換である Git SDK をインストールして、同梱の Python 3.7 を使う (個人的オヌヌメ)
インストールが正常にできているか以下のように確認する。
- ターミナルで
$ python -V
と実行してPython 3.7.5
と出力されること - ターミナルで
$ pip -V
と実行してpip 19.3.1 from c:\python37\lib\site-packages\pip (python 3.7)
のように出力されること (細かいバージョンやパスなどはテキトーで)
うまくいっていない場合は以下を確認する。
- 環境変数
PATH
の記載順序などをチェックする - GitBash を使っている場合は、試しに管理者権限で実行した PowerShell で動作するか確認する。GitBash で使用する際は
winpty
をかませてあるか確認する
MacOS の場合
- Python.org の公式から落としてインストールする
- https://www.python.org/downloads/release/python-375/
- v3.7.5 あたりでいいんじゃないですかね
- Homebrew が入っていれば Homebrew でインストールする (楽)
$ brew install python
- Python2 系との衝突は
$ brew unlink python@2
→$ brew link python
で解消できるかと
Docker をインストールする手順
Docker を利用する際は DockerHub アカウントを作成する必要があるので、作っておく。
- 公式サイト : https://hub.docker.com/
Get started with Docker Desktop
を開くと、チュートリアル形式でインストールしていけるのでオススメ
- Windows は Chocolatey、MacOS は Homebrew でもインストールできる
- https://qiita.com/Arturias/items/e13e3ecc39261a258bef (Windows Chocolatey)
- https://qiita.com/nemui_/items/ed753f6b2eb9960845f7 (MacOS Homebrew)
- Windows 10 Home の場合は Docker Toolbox というモノを使って、VirtualBox との併用でインストールする
- https://docs.docker.com/toolbox/toolbox_install_windows/
- VirtualBox のインストールやセットアップに失敗して上手くいかないことが多い (自分はホストオンリーアダプタの追加処理が失敗して苦戦した)。以下を気を付けると良いかも
- 「Windows の機能の有効化または無効化」で「ハイパーバイザ」「仮想化」「Hyper-V」関連の機能を無効化する
- ウイルスバスターなどは終了させた状態でインストールやセットアップを行う
- インストーラなどは全て「管理者権限で実行」する
- インストール前後などでこまめに OS 再起動する
ターミナルで $ docker --version
と実行してバージョン情報が出力されれば OK。
Docker で Python イメージを使用する
予めインストールした Docker を起動しておく。タスクトレイアイコンで「Docker Desktop is running」と確認できれば OK。
ターミナルで以下のように実行する。
$ docker run -it python:3.7.5-buster
コレで「Debian 10 Buster OS に Python 3.7.5 がインストールされた状態の Docker イメージ」を指定している。初回はイメージのダウンロードに数百 MB 使うので留意。
Docker イメージのダウンロードが終わると自動的に Python の対話コンソールに切り替わる。 >>>
というプロンプトが見えているはず。
>>> help()
Welcome to Python 3.7's help utility!
# 以下略
help> quit
>>> exit()
こんな感じで対話コンソールを確認できたらひとまず OK。
要解説?
(メンバに説明が必要かなと思うトピックをメモしていたモノ)
- pipenv のインストールと初回操作 (
$ pip install pipenv
・$ pipenv --python 3.7
) - pipenv 設定済のプロジェクトを使用するための手順 (
$ pipenv install -dev
) - VSCode の準備 (エディタは強制しないけど VSCode の Python Extension Pack 入れるだけでだいぶ楽)
- Docker + Python 環境での操作手順
- イメージの取得 (
docker pull
)・コンテナの生成 (docker run
) - コンテナの起動 (
docker start
)・停止 (docker stop
)・接続 (docker attach
)・切断 (Ctrl + P
→Ctrl + Q
)・破棄 (docker rm
) - コンテナ一覧 (
docker ps
・docker ps --all
)・イメージの破棄 (docker rmi
) - 構成によっては
docker-compose
- イメージの取得 (
- Git 操作
- 確認 (
git status
)・差分 (git diff
)・追加(git add
)・コミット (git commit
)・プッシュ (git push
) - ブランチ確認 (
git branch
)・ブランチ切替 (git checkout
)・ブランチ作成 (git checkout -b
) - リモートとの同期 (
git pull
・git fetch
)・マージ (git merge
)・Fast-Forward… - ログ確認 (
git log
・tig
)・Add 取り消し (git checkout
)・Commit 取り消し (git reset
)・使い所… - ブランチ作成時の初回コミット :
$ git commit --allow-empty -m 'Init'
(https://qiita.com/NorsteinBekkler/items/b2418cd5e14a52189d19)
- 確認 (
- GitHub 操作
- クローン
(git clone
) - プルリク
- クローン
あのプロジェクトは自然消滅してしまったが、競合他社が元気よくやっていて、流行風邪の大打撃を受けていたのを見るに、自然消滅は悪くない結果だったのかもしれない。