20210321のMacに関する記事は5件です。

M1 mac で miniforge をインストールして環境構築

目的

miniforgeをインストールして、Pythonを動かせる環境を構築する!

miniforge構築しようと思ったキッカケ

機械学習について調べた際に、ニュートラルネットワークがとても気になり、ライブラリーを使わず再現したいと思ったのが始まりです。
ニュートラルネットワークについて記載している「ゼロから作るDeep Learning」に沿って、anacondaをインストールしようと試したが、何度やっても上手くいかず、、、。よく調べてみると、現状M1 macだと、anacondaは上手く動かないらしい。。。。(詳しくは、調べると出てきます。)
仕方ないので、M1 mac上でも動くminiforgeをインストールして環境構築するこにしました。

miniforgeとは

miniforgeは コミュニティ。conda環境で必要最小限のパッケージです。

miniforge をインストール

https://github.com/conda-forge/miniforge から[Miniforge3-MacOSX-arm64]をダウンロードします。ダンロードが完了したら、ターミナル上で以下のコマンドを実行していきましょう。

# ダウンロードした[Miniforge3-MacOSX-arm64]が入ったディレクトリまで移動
cd Downloads

# インストールフォルダを指定してインストール
bash Miniforge3-Linux-x86_64.sh

あとは、時々聞かれる質問に[yes]と答えて行けば、インストールされます。

インストールされていることを確認

ターミナル上で以下を実行しましょう。

open ~/.bash_profile

以下のように、condaの初期化処理が ~/.zshrc に書き込まれることが確認できれば、インストール成功です。

# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/Users/●●/miniforge3/bin/conda' 'shell.zsh' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
    eval "$__conda_setup"
else
    if [ -f "/Users/●●/miniforge3/etc/profile.d/conda.sh" ]; then
        . "/Users/●●/miniforge3/etc/profile.d/conda.sh"
    else
        export PATH="/Users/●●/miniforge3/bin:$PATH"
    fi
fi
unset __conda_setup
# <<< conda initialize <<<

インストールが完了すると、自動的にconda環境になるため、以下のコマンドをターミナルで打ち込み、自動でconda環境にならないようにしておきましょう。

conda config --set auto_activate_base false

conda環境のオン•オフは以下のとおりです。

# conda環境オン。オンになると、”(base)”がついてきます。
conda activate
# conda環境オフ
conda deactivate

最後に、conda環境上で、以下を実行すると、pythonを実行するための環境が構築します。

conda create -n ●●(名前) python=3.9

最後に、環境構築されたことを以下のコマンドで確認します。

conda list

リストに名前があれば成功です!

参考資料

miniforgeをインストールする際、以下を参考にさせていただきました。
M1 MacにPythonインストールして開発環境構築してみた https://note.com/osmszk/n/n277447e8c2a4
conda 公式ドキュメント https://docs.conda.io/projects/conda/en/latest/commands.html#conda-vs-pip-vs-virtualenv-commands
AppleSilicon M1 Macにpythonをインストールする https://braveam.com/archives/1409

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

M1macとDocker。

まえがき

前提として、M1Macとは、AppleSiliconを搭載したArm64アーキテクチャCPUのPCである。

つまり、基本的にamd64/x86_64系アーキテクチャのバイナリは読めないし、M1Macでコンパイルしてうまくいったプログラムを配布しても、M1Mac以外では動かないと言ったことが当然起こる。

そこら辺はまぁ、コンパイラとかのオプションで同じソースから別のバイナリを作成すれば問題ない。結構簡単な話ではある。

だが、話は変わってDockerだったらどうだろうか?DockerはZembutsu氏のこちらの資料をみるとこう書かれている。

(なお、CPU amd64/x86_64 用にコンパイルしたバイナリは実行できますが、他の CPU アーキテクチャ向けのバイナリは amd64/x86_64 上では実行できません。例えば Raspberry Pi は ARM というアーキテクチャですので、この hello バイナリは Raspberry Pi でそのまま動きません。バイナリとして実行できない以上、仮に Docker イメージに入れたとしても、この次のセクションで説明する Docker コンテナとして実行はできません。Docker はハードウェアのエミュレーションを行いませんし、ハードウェアを仮想化するような技術でもありません。)

なるほど、やはり動かないと言うことらしい。

なら、実際動かしてみてどうなるか実験してみようじゃないか。

M1MacにDockerDesktopをインストール

M1MacにDockerDesktopをインストールするには、こちらのリンクを踏んでダウンロードする必要がある。

さらに、Rosetta2もインストールしなければならないため、以下のコマンドをShellに叩く

Rosetta2 install
softwareupdate --install-rosetta

すると、しっかりインストールされ、動くようになる。

実際に試す。

以下を試してみた。

docker run
docker run -it python:3.9-alpine python

すると、
スクリーンショット 2021-03-21 17.32.00.png
なんだ、しっかり動作するじゃないか。
なぜだろう。

...実は単純な話でARMアーキテクチャ用にビルドされたものがDockerHubにちゃんと上がっているのだ。

実際にDockerHubで調べてみた。

スクリーンショット 2021-03-21 17.48.54.png

なるほど、結構そもそも対応してるのね。と言う結論に。

M1macでビルドしたものをPushしても動かない?

M1Macでビルドしたものはどうなるのだろう。

そりゃまぁPullの時点でアーキテクチャが選択された上で層を重ねていくのだから、
いくらFROM python:3.9-alpineと指定した時点でARMイメージが決定するので、それに層を足してPushしてもリモートのLinuxサーバでは動かすことはできない可能性が高い。(まだ試したことはないが)

これに対する解決策

JenkinsやGoogleCloudBuildとかに任せる

リモートにJenkinsのビルドサーバを建てて、そこからBuildすると言う形がいいかと思われる。
そうすれば、リモートで主に使用されているamd64/x86_64 archの対応ができるので、それで回避すると言う手がある。
普通に考えたらこれでいい気がする。というかそもそもローカルでビルドなんかしたくない。

buildxコマンドを使用する

コンパイラと同様、アーキテクチャ別にbuildしてくれる機能をもつコマンドが実際に実装されているとのこと。
それがbuildxコマンド。詳細はこちら。

Docker Buildx

あとがき

ちなみに、ラズパイとかの関係もあって、正味ARMアーキテクチャなど、さまざまなデバイスで動くようにもう基盤がある程度整っていて、Macが突然M1になったからと言って全然未対応な感じではなかった。なので、M1Macを買ってDockerとかどうしよう...みたいに考えている方でも、安心して欲しい。

あと、基本Rosetta2がなんとかしてくれるし、ここで重い動作させるわけでもないんだし、M1Macだからと言う理由で何か不都合が起こることは、正味このDockerPushが直でできないくらいなものだった。あとはなんとかなる基盤が今の時代全て揃っているので、M1macでも開発環境上、何も問題ないと言える。

やはりコード化と言う原理は最強だった...我々はコードだけを扱えばいいので、下のレイヤーは最悪気にしなくていい。そんな基盤ができている現代社会に感謝したい。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Mac・Windowsで.mp4や.movを.gifに変換する

FFmpegという動画と音声を記録・変換・再生するためのフリーソフト使用して簡単にできます。
FFmpegはMac・Windows共に使えるソフトなのでWindowsでも可能です。

brewを使ってインストールします。

install.console
brew install ffmpeg

変換したい場合

templete.console
ffmpeg 入力オプション -i 入力ファイル名 出力オプション 出力ファイル名

入力ファイル: test.mp4
出力ファイル: test.gif

ex.console
ffmpeg -i test.mp4 -r 24 test.gif

これで完了です!

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

M1 MacbookAirでpython環境を整える(備忘録)

2021/3/21時点で
M1チップにpipなど対応していない多い模様。pandasなどもインストールできないので
とりあえず、M1チップのMacでPythonが動く環境を整える。

xcodedをインストール

ターミナルで下記のコマンドでxcodeをインストール

xcode-select --install

Miniforge3をインストール

https://github.com/conda-forge/miniforge からarm64 (Apple Silicon)用のスクリプトをダウンロードしてホームディレクトリに置く

bash Miniforge3-MacOSX-arm64.sh

~/.zshrcに色々書き込まれているようなので、下記コマンドで反映

source ~/.zshrc

仮想環境を設定

conda create -n myenv python=3.9
conda activate myenv

あとはconda install・・・でinstallができる。

matplotlib文字化け防止

https://ja.osdn.net/projects/ipafonts/releases/57327
からzipファイルをダウンロードして解凍したipaexg00201フォルダを
ライブラリフォルダ内のFontsにコピー
キャッシュが残っているかもしれないので、下記コマンドでキャッシュを削除

rm -rf ~/.matplotlib/
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

m1でpython環境を整える(備忘録)

xcodedをインストール

ターミナルで下記のコマンドでxcodeをインストール

xcode-select --install

Miniforge3をインストール

https://github.com/conda-forge/miniforge からarm64 (Apple Silicon)用のスクリプトをダウンロードしてホームディレクトリに置く

bash Miniforge3-MacOSX-arm64.sh

~/.zshrcに色々書き込まれているようなので、下記コマンドで反映

source ~/.zshrc

仮想環境を設定

conda create -n myenv python=3.9
conda activate myenv

あとはconda install・・・でinstallができる。

matplotlib文字化け防止

https://ja.osdn.net/projects/ipafonts/releases/57327
からzipファイルをダウンロードして解凍したipaexg00201フォルダを
ライブラリフォルダ内のFontsにコピー
キャッシュが残っているかもしれないので、下記コマンドでキャッシュを削除

rm -rf ~/.matplotlib/
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む