LoginSignup
882
913

【M1 Pro/Max対応】M1 Mac環境構築ベストプラクティス

Last updated at Posted at 2021-10-29

はじめに

2021/10/26にM1 Pro/Maxを搭載したMacBook Proが発売され、現在環境構築をされている方も多いかと思います。

一方で、Pro/Maxも含めたM1 MacはIntel Macと同じ方法でセットアップできないツールが多く、また公式未対応時のイレギュラーなセットアップ方法の記事がネット上に多く存在するため、どのセットアップ方法が正しいのか判断するのが非常に難しい状況となっています。
独自インストール.png
そこで今回、私が調べた範囲で現時点でのベストプラクティスと思われる方法をまとめてみました。

方法選択には主観も含まれているため、「こちらの方が良い!」という方法をご存じであれば、気軽にコメント頂けるとありがたいです

更新情報

本記事は2021/10/30時点での内容をベースとしています。
発売直後でベストプラクティスが固まっていない要素も多いため、情報が入り次第適宜記事を更新していこうと思います。

2022/6/26更新

2024/4/14更新

  • MinicondaによるPython環境構築に関して、こちらで紹介しているパッケージは全てPython3.10で動作することを確認したため、Python3.10を選択するよう記述を更新しました。

対象とする開発環境

Mac OSの初期設定、および私が開発によく使用している、

・VSCode
・Python
・Docker
・Andoroid Studio

の環境構築法についてまとめてみました。

手順

以下の順番で環境構築方法を解説していきます。
一部の環境構築のみ実施したい場合は、以下のリンクから直接内容に飛んでください

対象ツール リンク
Mac OS初期設定 リンク
VSCode リンク
Python リンク
Docker リンク
Android Studio リンク

Mac OS初期設定

開発用ソフトをインストールする前に、まずはMac OSの設定を整えて使いやすいデスクトップ環境を構築します。

初期設定

電源を入れると、色々と初期設定が求められます。基本的には指示に従って進めればOKです

デスクトップ設定

まず電源を入れて目につくのが、下のDockが大きくて邪魔だということです。
Dock.png
その他にもスクロールの向きがWindowsと逆だったり、Finder(Windowsでいうエクスプローラ)が使い辛かったりするので、
以下のYouTubeチャンネルを参考にして設定し直すと、使いやすくなるかと思います。

OSアップデート

購入直後のOSはバージョンが古くなっていてセキュリティ的に脆弱なことがあるので、アップデートします。
基本的には初回起動時に自動でアップデート画面が出てきますが、以下の方法で手動アップデートも可能です

・Dockから「システム環境設定」を開く
スクリーンショット 2021-10-26 19.49.03.png
・「ソフトウェアアップデート」を開き、アップデートがあれば指示に従い実行
スクリーンショット 2021-10-26 19.56.09.png

ターミナルのショートカット作成

以後の操作ではターミナル(Windowsでいうコマンドプロンプト)を多用しますが、デフォルトではショートカットが存在しないので、以下の手順で作成します。

画面右上のメニューバーから、検索メニューに入ります
スクリーンショット 2021-10-26 20.51.36.png
「ターミナル」で検索して出てきたターミナルのアイコンを、画面下のDockにドラッグ&ドロップします
スクリーンショット 2021-10-26 20.59.09.png

Homebrewのインストール

Macにおける定番パッケージ管理ツールであるHomebrewをインストールします。

Homebrewをインストールする事で、今までインストールしたアプリケーションを一括管理することができ、更新管理等を効率化できます(Linuxにおけるaptや、Pythonにおけるpipに近いイメージです)

Homebrew公式サイトにアクセスし、下図のチェックボックスをクリックしてシェルコマンドをコピーします
スクリーンショット 2021-10-26 20.43.16.png
コピーしたシェルコマンドをターミナルに貼り付け、Enterを押して実行します。
パスワードが求められるので、OSのユーザーパスワードを入力します。

M1系CPUではインストールが完了すると、以下のように「パスを通してください」というメッセージと共に2個のコマンドが表示されます。

==> Next steps:
- Run these two commands in your terminal to add Homebrew to your PATH:
    echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> /Users/******/.zprofile
    eval "$(/opt/homebrew/bin/brew shellenv)"
- Run `brew help` to get started

指示に従い、まずは1個目のコマンドをコピペして実行します
(******の部分はユーザ名が入る)

echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> /Users/******/.zprofile

次に、2個目のコマンドをコピペして実行します

eval "$(/opt/homebrew/bin/brew shellenv)"

以下のコマンドでHomebrewのバージョンが表示されたら成功です

brew --version

※Homebrewの使い方は、以下の記事が分かりやすいです

Homebrewでのインストールおすすめアプリケーション

このタイミングで、Homebrewを使って以下のアプリケーションを入れてしまうと便利です
・Chrome
・Git(入っていないとき)

Chromeをインストールするコマンド
brew install google-chrome --cask

※最後の「--cask」は、GUIアプリケーションのインストールに必要なオプションです。

私のMac OS(12.0.1)ではGitが最初から入っていましたが、入っていない場合はインストールが必要です。入っているかどうかは以下で確認できます

git --version

上記でバージョンが表示されれば既にインストールされています。インストールされていない場合は以下でインストールします

brew install git

VSCode環境構築

VSCode(Visual Studio Code)は軽量かつ多機能なソースコードエディタで、Python(分析)やRuby(Webアプリ)など、多くの言語における主要なエディタとして定着しつつあります。
Microsoft製のためWindowsのイメージがあるVSCodeですが、Macでも着々とシェアを伸ばしているようです。

以下の手順で、VSCodeでの開発態勢を整えて行きます。
こちらの記事を参考にさせて頂きました)

VSCodeのインストール

まずVSCode本体をインストールします。
Homebrewが入っていれば、以下のコマンドでインストールできます

brew install --cask visual-studio-code

Finderの「アプリケーション」フォルダにVSCodeが生成されるので、Dockにドラッグ&ドロップしてショートカットを生成すると便利です。
スクリーンショット 2021-10-26 21.36.35.png

初回起動時には以下の確認が出るので、「開く」を押します
スクリーンショット 2021-10-26 20.20.51.png

これでVSCodeのインストールが完了です。

参考までに、Homebrewを使用しないVSCodeのインストール法も下記します。

参考:Homebrewを使用しないVSCodeのインストール

VSCodeのダウンロードページにアクセスし、以下のリンクからM1 Mac版のVSCodeをダウンロードします。
スクリーンショット 2021-10-26 20.12.31.png
ダウンロードしたファイルをFinderで開き、Visual Studio Code.appを「アプリケーション」にドラッグアンドドロップします
スクリーンショット 2021-10-26 20.18.27.png

VSCode拡張機能のインストール

VSCodeには便利な拡張機能(アドオン)が多く存在し、これらをインストールすることで開発効率をアップさせることができます。

以下のように、VSCodeを起動して出てくる左下の「Extensions」タブをクリックし、検索して出てきたアドオンを「Install」ボタンでインストールできます。
スクリーンショット 2021-10-26 21.49.25.png

個人的(Python分析エンジニア的)おすすめアドオンは、以下となります。

アドオン名 機能
Python PythonのリンターやJupyter拡張等、Pythonの基本機能を網羅したアドオン
Git Graph Gitのツリーをグラフィカルに可視化
Rainbow CSV CSVファイルを色分け表示するアドオン
Remote SSH リモート端末上のコードをSSH接続で開発するアドオン
Remote Containers Dockerコンテナ上のコードを開発するためのアドオン
Docker Dockerのコンテナ管理やDockerFileのリンターを含んだアドオン

Web系の開発をするのであれば、以下の記事が参考になるかと思います。

VSCodeでの開発方法

VSCodeで実際にコードを書く際は、以下の手順が基本となります

作業用フォルダの作成

Finderあるいはターミナル(mkdirコマンド)で、好きな場所に作業用フォルダを作成します

VSCodeで作業用フォルダを開く

VSCodeを起動し、左上のタブを選択したのち「Open Folder」をクリックします
スクリーンショット 2021-10-27 2.58.44.png

スクリプトの作成

開いたフォルダ上で右クリックし、「New File」を選択します
スクリーンショット 2021-10-27 3.13.35.png

スクリプトのデバッグ

以下のように、左側のデバッグタブ(虫のマーク)を選択し、「Run and Debug」を押すことで、スクリプトをデバッグ実行できます
スクリーンショット 2021-10-27 4.13.46.png
行番号の左を選択すれば、ブレークポイント(デバッグ中に処理を止めて変数を確認するポイント)を打つこともできます

Python環境構築

M1 Macでは、今回の新型Pro発売前からPython環境構築にハマるとの声が多く聞かれます。
その原因は、pipやanaconda等のよく使われるパッケージ管理ツールが使用できないライブラリが多いことに集約されるようですが、各ライブラリのpip対応も徐々に進んでおり、状況が刻一刻と変わる段階にあります。

上記の状況を鑑みて、本記事では記事執筆時における、M1 MacにPython本体およびよく使うライブラリをインストールする方法を紹介します。

執筆においては、以下の記事を参考にさせて頂きました

Python本体のインストール確認

Python自体はデフォルトでインストールされており、現時点ではこのデフォルトのPython以外は一旦削除することが望ましいです(環境の乱立による不具合を防ぐため)

「デフォルトのPython以外に何があるの?」と思われた方も多いかと思いますが、PythonはHomebrew等でもインストールできるため、まずはデフォルトのPythonのみがインストールされているかを確認します。

Python本体のパス確認

以下のコマンドを打ち、帰ってきたパスが/usr/bin/python3であればデフォルトのPythonにパスが通っているのでOKです

which python3

HomebrewのPythonが存在しないことを確認

以下のコマンドでHomebrewのインストールパッケージ一覧を表示させ、Pythonが存在しないことを確認します

brew list

各種ライブラリのインストール

以下の有名どころの分析系ライブラリをインストールする方法を紹介します。

ライブラリ名 用途 インストール方法
numpy 数値計算 パターン1 (Miniforge)
pandas データ整形 パターン1 (Miniforge)
scipy 統計計算 パターン1 (Miniforge)
scikit-learn 機械学習 パターン1 (Miniforge)
lightgbm 機械学習 パターン1 (Miniforge)
xgboost 機械学習 パターン1 (Miniforge)
jupyter 各種可視化 パターン1 (Miniforge)
matplotlib グラフ描画 パターン1 (Miniforge)
seaborn グラフ描画 パターン1 (Miniforge)
geopandas 地理データの分析 パターン1 (Miniforge)
opencv 画像処理 パターン1 (Miniforge)
optuna パラメータチューニング パターン1 (Miniforge) パターン2 (Miniforge + pip)
自作ライブラリ いろいろ パターン2 (Miniforge + pip)
TensorFlow 機械学習(深層学習) パターン3 (Miniforge + いろいろ)
PyTorch 機械学習(深層学習) パターン4 (Miniforge + pytorch公式リポジトリ)

パターン1〜4の具体的手順について、以下で詳説します

パターン1:Miniforgeによるインストール

Miniforgeとは、パッケージ管理システム「conda」をconda-forgeリポジトリで利用するためのツールで、M1 Macを含むマルチプラットフォームに対応していることが特徴です。

現状、多くのライブラリにおいてM1 Macに簡単にインストールするための唯一の手段となっています。

・conda系ツールまとめ

conda系のツールはAnacondaやMiniconda等種類が多く、「どれがどれだか分からない!」という方も多いと思うので、以下にまとめました。
(間違いがあればご指摘頂ければと思います)

名称 パッケージ管理システム 使用リポジトリ 初期パッケージ 商用利用
Anaconda conda Anacondaデフォルトリポジトリ てんこ盛り 有償
Miniconda conda Anacondaデフォルトリポジトリ 最小限 有償
Miniconda + conda-forge conda conda-forge 最小限 無償
Miniforge conda conda-forge 最小限 無償

パッケージ管理システムとリポジトリの違いは、以下のようになります

パッケージ管理システム(conda):パッケージを管理する仕組み
使用リポジトリ(conda-forge等):パッケージを格納しておく場所

余談ですが、Anaconda商用利用有償化問題は、condaではなくAnacondaデフォルトリポジトリが有償化されたことが根本原因(リポジトリの負荷増大防止のため)のようです。

Miniforgeのインストール方法

MiniforgeのGitHubページにアクセスし、以下のMiniforge3-MacOSX-arm64をダウンロードしてください
(高速化を目的としたpypyやMamba等もありますが、今はひとまず無視してください)
スクリーンショット 2021-10-27 1.34.06.png
ターミナルから以下のコマンドでダウンロードフォルダに移動し

cd ~/Downloads

以下のコマンドでダウンロードしたMiniforge3-MacOSX-arm64.shを実行してください

bash Miniforge3-MacOSX-arm64.sh

途中色々と聞かれますが、全てEnterを押すかyesで進んでください。
インストール完了後、シェルを一度閉じてから開き直し、以下のコマンドでcondaを有効化し、(base)と表示されれば成功です

conda activate

また、以下のコマンドでcondaのデフォルト環境(base)上にインストールされているPythonのバージョン等の情報が表示されます

conda info

このままでは常にシェルに(base)と表示されてしまいますが、以下のコマンドでcondaを無効化すれば消すことができます

conda deactivate

仮想環境の作成

condaでパッケージ管理を行う際は

・ベース環境 (base)
・仮想環境

の2通りの方法があります。
後述しますが、M1 Macにおいてはライブラリによってpipとcondaの2通りのパッケージ管理ツールを使い分ける必要があり、前述の「混ぜるな危険問題」(pipとcondaで同じライブラリをインストールし不具合発生)が起こりやすい状況と言えます。
このリスクを回避するためには、仮想環境を利用することが望ましいです(問題が発生したら新たに仮想環境を作り直せば良い)

また、上記の方法でMiniforgeをインストールすると、conda上にPython3.9がインストールされますが、MacOS版TensorFlowは現状Python3.8にしか対応していないため、Python3.8の環境を簡易的に作るためにも仮想環境は良いソリューションとなります。
2024/4現在、Python3.10で動作します。

前置きが長くなりましたが、以下のコマンドでPython3.10の仮想環境を作成します

conda create --name 仮想環境名 python=3.10

※「仮想環境名」の部分は好きな英数の名前を付けてください(例:python310)

作成が完了したら、以下のコマンドで環境一覧を表示させ、作成した仮想環境名が存在することを確認します

conda env list
表示例
# conda environments:
#
base                  *  /Users/******/miniforge3
仮想環境名                 /Users/******/miniforge3/envs/仮想環境名

※「******」の部分はユーザ名が入ります

以下のコマンドで、作成した仮想環境を有効化します

conda activate 仮想環境名

以下のコマンドで、インストールされているライブラリを確認します

conda list
実行結果
# Name                    Version                   Build  Channel
ca-certificates           2021.10.8            h4653dfc_0    conda-forge
libcxx                    12.0.1               h168391b_0    conda-forge
libffi                    3.4.2                hbdafb3b_4    conda-forge
libzlib                   1.2.11            hee7b306_1013    conda-forge
ncurses                   6.2                  h9aa5885_4    conda-forge
openssl                   3.0.0                h3422bc3_1    conda-forge
pip                       21.3.1             pyhd8ed1ab_0    conda-forge
python                    3.8.12          hd949e87_2_cpython    conda-forge
python_abi                3.8                      2_cp38    conda-forge
readline                  8.1                  hedafd6a_0    conda-forge
setuptools                58.2.0           py38h10201cd_0    conda-forge
sqlite                    3.36.0               h72a2b83_2    conda-forge
tk                        8.6.11               he1e0b03_1    conda-forge
wheel                     0.37.0             pyhd8ed1ab_1    conda-forge
xz                        5.2.5                h642e427_1    conda-forge
zlib                      1.2.11            hee7b306_1013    conda-forge

最低限のライブラリのみがインストールされていることがわかります。
numpy等の計算系ライブラリは入っていないため、別途インストールする必要があります。

なお、作成した仮想環境は以下のコマンドで削除できます

conda remove -n 仮想環境名 --all

ライブラリのインストール

前述のリストで「パターン1」となっていたライブラリに関しては、condaでインストールすることができます
(インストール前に仮想環境がactivateされていることを確認して下さい)

numpy
conda install numpy
pandas
conda install pandas
scipy
conda install scipy
scikit-learn
conda install scikit-learn
lightgbm
conda install lightgbm
xgboost
conda install xgboost
jupyter
conda install jupyter
matplotlib
conda install matplotlib
seaborn
conda install seaborn
geopandas
conda install geopandas
opencv
conda install opencv

なお、ライブラリを一個ずつインストールすると、手間が掛かる上にactivate忘れ等のミスの原因となるので、後述のenvironment.yamlで一括インストールすると便利です

ライブラリインストールの確認

仮想環境をactivateした状態で以下のコマンドを打ち、インストールしたライブラリが含まれていることを確認します

conda list

VSCodeへの仮想環境の適用

作成した仮想環境にVSCodeからアクセスできるようにします。

VSCodeを開き、先ほどの「VSCode使用法」の項と同様に、作業したいフォルダを開きます。
以下のように左下に「Python 3..」と表示されている部分があると思うので、そこをクリックし、出てきた項目から「Enter interpreter path」を選択します
スクリーンショット 2021-10-27 3.24.06.png
Find...をクリックします
スクリーンショット 2021-10-27 4.01.59.png
フォルダ選択画面が表示されるので、インタープリタを探して「インタープリタを選択」を押します
インタープリタは、先ほどconda env listで表示された仮想環境のパス内に存在します。
一般的には以下のようなパスとなるかと思います。

/Users/******/miniforge3/envs/仮想環境名/bin/python3.x

※「******」の部分はユーザ名が、「x」の部分はPythonのバージョンが入ります

以下のように左下のPythonのバージョンが仮想環境のものに変われば成功です
スクリーンショット 2021-10-27 4.11.01.png
これで、デバッグ実行時に仮想環境のライブラリが適用されます。
(シェル実行する際はactivateコマンドで仮想環境を有効化してから実行して下さい)

※ condaを使用したくない方へ

特にWindowsユーザの方は、condaとpip混ぜるな危険問題Anaconda有料化問題等から、condaにイヤな思い出がある方も多いかと思います。私もそうでした。

このような方であっても、現状ではMiniforge以外でのインストールが困難なライブラリが多いため(scipy、scikit-learn、TensorFlowなど)、現時点ではcondaのデメリットを鑑みてもMiniforgeを使用することをお薦めします

一方でpipで簡易にインストールできるライブラリも徐々に増えている(numpyやpandasは既にpipでもインストールできるようです)ため、将来的にはconda(Miniforge)を使用しなくともM1 MacでPython環境構築できるようになる可能性が高いと思います。

現状未対応のライブラリも徐々に対応が進んでいるため、大きな動きがあれば本記事でも内容更新しようと思います(以下はscikit-learnでの開発進捗を共有するIssues)

パターン2:Miniforge + pipによるインストール

condaでインストールできないライブラリに関しては、pipでインストールすることも可能です。
この際、同じライブラリをpipとcondaで2重にインストールすると不具合の原因となるので、ご注意ください
(仮想環境内であれば、仮想環境を作り直せば復旧可能です)

pipでのインストールは、以下の手順で行います

Miniforge環境の構築

まずはパターン1の手順を一通り完了させ、condaでインストールできる依存ライブラリは全てインストールしておきます

pipによるライブラリインストール

condaでインストールできないがpipでインストールできる主なライブラリ(前述の「パターン2」)のインストール方法を紹介します

optuna

optunaは

conda install optuna

でインストールしようとすると、

UnsatisfiableError: The following specifications were found to be incompatible with each other:

Output in format: Requested package -> Available versions

というエラーが出てうまくインストールできないので、pipでインストールします
(Windowsではcondaでもインストールできるようですが、M1でできない原因は不明です)

※2023/1/3更新: M1でもcondaでoptunaをインストール出来るようになったようです

自作ライブラリ

こちらの記事で紹介した方法でpipインストール可能とした自作ライブラリや、conda-forgeに登録されていないマイナーなライブラリをインストールしたいときも、pipが便利です。

例えばこちらの記事で作成した「seaborn-analyzer」というライブラリをインストールしたい場合、仮想環境をactivateしてREADMEに記載されている依存パッケージをcondaでインストールしたのち、

pip install seaborn-analyzer

でインストールできます

【参考】ライブラリの一括インストール

上記の手順ではライブラリを一個ずつインストールしており、手間が掛かる上にactivate忘れやpipとcondaの間違い等のミスも起こりやすい状況となっています。

上記の問題の解決策としては、environment.yaml(pipにおけるrequirements.txtに相当)による一括インストールが便利です

例えば前述のパターン1(condaでインストール)およびパターン2(pipでインストール)の全てのライブラリをインストールしたpython3.10仮想環境を作成したい場合、以下のようなenvironment.yamlを作成します

environment.yaml
name: 環境名
channels:
  - conda-forge
dependencies:
  - python=3.10
  - numpy
  - pandas
  - scipy
  - scikit-learn
  - lightgbm
  - xgboost
  - jupyter
  - matplotlib
  - seaborn
  - geopandas
  - opencv
  - pip:
    - optuna
    - seaborn-analyzer
prefix: /Users/ユーザ名/miniforge3/envs/環境名

上記で作成したenvironment.yamlを以下のコマンドで実行すれば、記述したライブラリが全てインストールされた仮想環境を作成することができます。

conda env create --file environment.yaml

インストール元のリポジトリも個別に指定できるので、conda-forge以外のリポジトリ(pip等)からのインストールも可能です

上記はライブラリの名称のみを指定していますが、バージョンまで指定してインストールしたいときや、現在の環境をenvironment.yamlに書き出したいときは、以下の記事が参考になります。

パターン3:TensorFlowのインストール

TensorFlowは記事によってインストール方法が異なっており、ベストプラクティスが定まっていない状況と思われますが、恐らく現状では以下の方法が一番簡単です(参考記事

上記を参考に、以下の方法でTensorFlow (M1 GPU対応)のインストールを進めます

Miniforge環境の構築

まずはパターン1の手順を一通り完了させ、opencvをcondaでインストールしておきます。

tensorflow-depsのインストール

仮想環境をactivateしたのち、TensorFlow-deps(依存パッケージ)を以下のコマンドでインストールします

conda install -c apple tensorflow-deps

base TensorFlowのインストール

以下のコマンドで、Mac版TensorFlowをインストールします

python -m pip install tensorflow-macos

tensorflow-metalプラグインのインストール

TensorFlowでM1 GPUを効率的に利用するためのプラグインであるtensorflow-metalを、以下のコマンドでインストールします

python -m pip install tensorflow-metal

動作確認

以下のコマンドでTensorFlowのバージョンが表示されれば成功です

python -c 'import tensorflow as tf; print(tf.__version__)'

パターン4:PyTorchのインストール

以下のサイトに記載されているように、pytorchのリポジトリ経由でcondaからpytorchをインストールできるようになったようです。

以下の手順でPytorchをインストールします

Miniforge環境の構築

まずはパターン1の手順を一通り完了させます。

pytorchのインストール

仮想環境をactivateしたのち、pytorchとtorchvisionを以下のコマンドでインストールします

conda install -c pytorch pytorch torchvision
※2022/6/26更新

PyTorchがM1 GPUに対応したそうなので、GPUを利用したい方は以下のpip3コマンドでインストールした方がパフォーマンスが向上するようです (こちらこちらを参考にさせて頂きました)

pip3 install -U --pre torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/nightly/cpu

以下Pythonスクリプトでバージョンが1.12.0以上、かつMPUが有効(True)になっていればOKです

import torch
print(torch.__version__)
print(torch.backends.mps.is_available())

M1MacのGPU学習を有効化する(データやモデルをGPUに送る)際には、CUDAでは"cuda"としていた部分を以下のように"mps"と指定すると良いでしょう(mpsはMetal Performance Shadersの略)。

model.to("mps")

参考までに、私の環境(M1 Pro 10core-CPU & 14core-GPU)でのCPUとGPUでの学習時間を比較しました。
詳細は以下の動作確認用スクリプト中の4_pytorch_test.pyを参照頂きたいですが、データはCIFAR10、モデルはResNet16、バッチ数32、エポック数5で学習しています。

環境 学習所要時間
GPU (device="mps") 140.2s
CPU (device="cpu") 1590.9s
CUDA参考 (CUDA + GeForce RTX4080 + Ubuntu22.04) 52.1s

CPUよりはだいぶ速くなっており、CUDAとも思ったほど差がなさそうに見えます。とはいえ大きなモデルではCUDAに優位性があることは間違いないので、速度重視であればNVIDIAのGPUとCUDAを使用した方が良いでしょう。

動作確認用スクリプト

以下に、今回インストールしたライブラリの動作確認用スクリプトをアップロードしたので、こちらをVSCodeで実行してエラーが出なければ成功です。

以上でPythonの環境構築は完了です!

かなり手間がかかりましたが、環境をほぼMiniforgeに統一できたので、現状でのベストプラクティスに近い環境となったのではと考えております。

(あえて言うのであればMiniforgeをHomebrewでインストールするか少し迷いましたが、現時点では適用事例が少ないので公式の方法でのインストールにしております)

Docker環境構築

Dockerに関しても、M1 Macはややイレギュラーな対応が必要となります。具体的には以下となります。

・Rosetta2 (Intel CPU用に開発されたアプリを動かすためのツール)のインストールが必要
・一部のDocker Imageが正常に動作しない

以下の手順でセットアップを進めます

Docker Desktopのインストール

まず、Docker Desktop本体のインストールを完了させます

Rosetta2のインストール

以下のコマンドで、Rosetta2をインストールします

softwareupdate --install-rosetta

途中でインストール確認メッセージが出てくるので、「A」と入力してEnterを押します

Docker Desktopのダウンロードとインストール

Docker公式から、以下のボタンよりDocker.dmgをダウンロードします
スクリーンショット 2021-10-28 13.02.05.png
ダウンロードしたファイルをダブルクリックすると以下の画面が開くので、指示通りウィンドウ内のDockerのアイコンをApplicationsにドラッグ&ドロップします
スクリーンショット 2021-10-28 16.18.54.png
しばらく待つとDocker Desktopのインストールが完了します

Dockerの動作確認

Docker Desktopを開くと、管理者権限の確認画面が出てくるのでパスワードを入力します。
利用規約確認画面でOKを押してしばらく待ち、以下の画面が出て来れば起動成功です。
スクリーンショット 2021-10-28 17.58.15.png
コンテナが起動するかどうかを確認するため、適当な作業用フォルダを作成し、直下に以下のようなdocker-compose.yamlを作成します(Python開発環境のImageです)

docker-compose.yaml
version: '3'
services:
  test_python:
    image: python:3.8-buster
    volumes: 
      - .:/mnt
    stdin_open: true
    tty: true
    working_dir: /mnt
    command:  /bin/bash

上記ファイルのあるディレクトリにターミナルで移動し、以下のコマンドでコンテナを起動します

docker-compose run test_python

Imageのダウンロードとコンテナ起動が始まるのでしばらく待ち、以下のようなbashが立ち上がれば成功です

root@******:/mnt# 

(bashからは「exit」で抜けられます)

また、VSCodeのRemote Containersアドオンがインストールされていれば、リモート接続タブから以下のように作成したコンテナにアクセスすることができます
スクリーンショット 2021-10-28 18.30.27.png
上図の場合作業用フォルダ名が「miniforge_test」だったので、この名前に合わせてコンテナ名が作成されます
※docker-composeによるコンテナ名の命名規則はこちら参照

一部のImageでのエラー回避方法

下記記事のように一部のImage(mysql等)では、M1 Macに非対応であることに由来したエラーが発生します。

上記記事に記載されているように、docker-composeにplatform: 'linux/amd64'という定義を追加すれば(あるいはrunやup時に--platform linux/amd64というオプションを追加)、エラーを回避することができます(公式にも記載あり

※Docker Desktopの商用有償化回避

ご存じの方も多いかと思いますが、Docker Desktopは2022年2月より、従業員数250人以上または売上10億円以上の企業において有償化されます。

有償化を回避するためには、以下のようにLimaを使用する方法等があるようです。

Android Studio環境構築

別記事で投稿しました

882
913
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
882
913