LoginSignup
2

More than 1 year has passed since last update.

posted at

updated at

Python開発仮想環境構築備忘録(Windows+Docker+VSCode+Hyper-V+Python3)

自分用備忘録
WindowsでDockerを使い、VSCode上でPythonを実行できる仮想環境を作る。
※操作は基本管理者権限で実行する想定。

Hyper-V有効化

「コントロールパネル」-「プログラムと機能」-「Windowsの機能の有効化または無効化」からHyper-Vを有効化する。
Hyper-V.png

Dockerインストール

Docker for windowsを公式サイトからダウンロード、インストールする。
https://hub.docker.com/editions/community/docker-ce-desktop-windows/
docker.PNG
インストール時にWSL2をインストールするか聞かれるが今回はHyper-Vを使うのでチェックを外す。
WSL拒否.PNG
Hyper-Vを使う(Use Hyper-V)
Hyper-V使うよ.png

VSCodeインストール

VSCodeをインストール、日本語化しておく。(割愛)

Docker設定

Docker右上の歯車マークから設定画面に入る。
[General]:PC起動時にDockerが立ち上がらないようにしておく。
docker設定.png
[Resources]-[ADVANCED]:デフォルトそのまま。
dockerリソースデフォルト.png

メモリーが足りずDockerが起動できないときはMemoryを最小の1GBに設定する。
※そもそもDockerが起動に成功しないと設定を変更できないので、以下の設定ファイルから直接変更する。

C:\「ユーザー」\AppData\Roaming\Docker\settings.json
"memoryMiB": 2048→1024

PythonイメージPull

コマンドプロンプトでDockerHubからPythonイメージをダウンロード(pull)する。
https://hub.docker.com/_/python

docker pull python:latest

Docker上
images.png

コンテナ作成

コンテナを作成(+起動)する。

//docker run -it --name 「コンテナ名」 「イメージ名」 /bin/bash
docker run -it --name pythonTest python /bin/bash

作成するとコンテナの中に入る。(VSCodeで接続するのでexitで抜けておく)

Docker上
コンテナ.png

VSCodeでコンテナへリモート接続

VSCodeに拡張機能のRemote-Containersをインストールする。
VSCoderemote.PNG
左側のバーにモニターのアイコンが表示され、先ほど作ったコンテナがあるので接続(Attatch to Container)する。
VSCodepython接続.PNG

接続できると左下に接続先のコンテナ名が表示される。(開かれたVSCodeはリモート先のVSCodeとなる)
VSCode接続成功.png

英語になっている時はコマンドパレット(Ctrl+Shift+P)から「Configre Display Language」を選択し言語を日本語に変更する。
VSCode日本語化.png

リモート先のVSCodeに拡張機能のPythonをインストールする。
VSCodePython.png

ターミナルを表示するとVSCode上でコマンド入力できる。
VSCodeターミナル.png

仮想環境設定

viコマンドを使えるようVimをインストールする。

apt-get update
apt-get install vim

空のpyファイルを作成する。

vi test.py

:wqで保存終了したら、Ctrl+Oで作ったpyファイルを開く
VSCodeファイル.png

適当にコードを書いて保存し、F5でPythonを実行する。
python実行.png

ターミナル画面に実行結果が表示される。
python実行joutai .png

Python開発環境出来上がり

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
What you can do with signing up
2