0
2

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 1 year has passed since last update.

Win11でPythonする環境の構築(Hyper-V,Ubuntu22,Docker,Poetry)

Posted at

Hyper-VでUbuntuする

まずはPowerShellの確認

Powershellの最新バージョンを確認します。
https://learn.microsoft.com/ja-jp/powershell/scripting/install/installing-powershell-on-windows
上記 URL はその時のStable版になります。Stable 版では困る方はバージョンセレクタから変更してください。

image.png

Windowsで、PowerShellを起動。Upgradeが必要な場合は通知が出てたりします。
image.png

出てこなかった場合は、$PSVersionTable を入力して確認してください。
image.png
pwsh コマンドでも構いません。

管理者モードでPowerShellを起動しての確認もしておきましょう(筆者はこれをしたら、v7.3.7の最新安定板の情報が出るようになりました)
image.png

PowerShellバージョンUp

Updateコマンドを実行するとストアがたちがるので、Nextボタンを押します。

PowerShell
Invoke-Expression "& { $(Invoke-RestMethod https://aka.ms/install-powershell.ps1) } -UseMSI"

image.png

バージョンUp完了
image.png

PowerShellでHyper-Vを有効化

管理者モードでPowerShellを起動して、Hyper-Vを有効化するコマンドを入力します。

PowerShell
DISM /Online /Enable-Feature /All /FeatureName:Microsoft-Hyper-V

image.png
PCの再起動を促されることもあるようです。(筆者の環境は以前にもHyper-V起動したことがあったかもしれないので、聞かれませんでした)

Ubuntuをダウンロード

https://jp.ubuntu.com/download
2023/10/6時点のLTS(22.04.3LTS)をダウンロードします。
image.png
4.7GBのISOイメージです。

筆者はディスク領域を増やすときに楽なので Ubuntu Desktop を使ってますが、Ubuntu Server でも構いません(ただし、未検証ですので自己責任でお願いします)

Hyper-Vの起動

アプリメニューに出てこないことも多いので、コマンド検索窓で hyper-v と入力し、Hyper-V マネージャーを起動します。(管理者モードで実行しています。必須かどうかは未確認ですが、なんとなくこっちのほうが安心)
image.png

Ubuntuの仮想マシンを作成

使用PCの仮想化許容範囲もありますが、Ubuntu Desktop要件のメモリ4GB以上で作成します。
image.png
新規VM作成メニューに従って設定していきます。
image.png

仮想マシンの使うネットワーク

Hyper-Vだと、外部、内部、プライベート、のいずれかを選択します。

Hyper-V 説明
外部 HYPER-VのホストOSに搭載されている物理NICを割り当てる仮想スイッチを経由する場合はブリッジ接続が出来る
内部 ホストOSは外部につなぎたいけれど、仮想マシンは外部につなぎたくない場合の設定
プライベート 仮想マシン系のみの独立したネットワークを作成

筆者環境ではブリッジ接続をしたいので、「外部」での仮想スイッチを作成します。
image.png
適当な名前を付けます。VLAN IDも特に必要ないので、指定していません。
接続の種類の外部ネットワークに指定するアダプタは使用するWin11端末のネットワークアダプタを指定します。筆者はWiFi利用のため、WiFiアダプタ(Intel(R) WiFi 6 AX201 160MHz)を指定しています。
image.png
作成した仮想スイッチを使用するVMに適用します。
image.png

仮想マシン設定

Hyper-Vを始めて使ったときに、はや~~、と感動しました。
その理由は、プロセッサとメモリの設定にあります。
ここの設定は沼るので要注意です。
image.png

厳密にはアレコレあるんですが、考え方は以下

  • 仮想プロセッサ数は、論理プロセッサからの割り当て数
  • 「リソースコントロール」の母体はHyper-V運用
    • 1台のホストでVM複数作成したときの設定がベース
    • 仮想マシンの予約%:占有したいとき
    • 仮想マシンの限度%:全VM足し算して200になる数まででの%設定
    • 相対的な重み:全VMで重み設定

image.png
メモリの割り当てはUbuntu要件がベースの4GB以上、です。
動的メモリの設定上、最大RAMの数がデフォルト1TBなので、ほどよい値に変更必須です。
あるいは、動的メモリのチェックマークを外すことで、使用上限がRAM(R): 欄記載の値となります。

あとは、DVDドライブにダウンロードしておいたUbuntuのISOイメージを設定しておけばOK。

仮想マシンの起動(Ubuntuインストール)

マシンを起動します。DVDブートでUbuntuインストールが開始します。
image.png
起動後、接続して、コンソール画面を参照します。
image.png

image.png

セットアップ等はこちらのサイトが詳しいです。
https://www.server-world.info/query?os=Ubuntu_22.04&p=download

インストールするもの。いずれも、apt install を使用する

  • openssh-server
  • git
  • docker.io
  • docker-compose

Python(Docker)環境構築

DockerでPython環境を作ります。
参考サイト: https://book.st-hakky.com/docs/try-poetry-on-docker/

Docker Image用Linuxディストリビューションを選びます。
参考サイト:https://zenn.dev/ken3pei/articles/1abbf7d974cf5d
開発目的なので、1GB近くなりますが、筆者はDebian系のbullseyeを入れます。

Pythonのバージョンは、2023/10時点では3.12.0 が最新でした。

コンテナ起動

docker-compose
docker-compose up -d --build
docker-compose exec poetryapp bash

poetryお試し

poetry
poetry init --no-interaction
poetry add pandas

poetry add したときに以下のようなメッセージが出ることがあります。
最後の行の記載に従って、pyproject.toml のpython バージョン欄を変更するとうまく行きます。
[tool.poetry.dependencies]
python = "^3.12" ⇒ >=3.12,<3.13"

~ Check your dependencies Python requirement: The Python requirement can be specified via the python or markers properties
For numpy, a possible solution would be to set the python property to ">=3.12,<3.13"

最後に

Pythonの開発環境って、どこまでどの程度出来上がれば便利でうまく使いこなせるのか、よくわかってませんが、少なくともバージョン揃えとか、環境を汚さない、とかは出来そうです。

本当はVSCodeからPythonを使うつもりだったんですが、好みの指向性が Linux >>> Windows なので、Teratermで使えるようになった時点で満足してしまいました。

参考にしたサイト

https://learn.microsoft.com/ja-jp/powershell/scripting/install/installing-powershell-on-windows
https://www.server-world.info/query?os=Ubuntu_22.04&p=download
https://book.st-hakky.com/docs/try-poetry-on-docker/
https://zenn.dev/ken3pei/articles/1abbf7d974cf5d

0
2
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
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?