2020年12月5日土曜日

Apple Silicon MacBook Air

MacBook Air2013からApple Silicon MacBook Airのときにやったこと

移行アシスタントでやるとすぐに同じ状態で使えるのはいいんだが、要らなそうなファイルも持ってきてしまう。きれいさっぱりな状態にしたかったのでひとまず
  1. まっさらな状態で環境設定
  2. ファイル共有で必要なファイルだけコピペ
  3. 隠しファイルの表示はcommand+shift+.(dot)

ミュージック

  1. ミュージック(iTunes)は、iTunesのメニューで「ファイル」->「ライブラリ」->「ライブラリを整理」を選択して、「ファイルを統合」を実施
  2. 「ミュージック」内「iTunes」ディレクトリ配下に必要なファイルが作成される
  3. この「iTunes」ディレクトリを丸ごと、新Macの「ミュージック」へコピー
  4. 新MacでiTunesを「option」を押しながら起動すると、ライブラリを選択できるようになる
  5. 「ライブラリを選択」から「iTunes」内の「iTunes Library.itl」を選択すれば、移行完了

    写真

      1. 写真は、「ピクチャ」内に「写真 Library」があり、これを旧Macから新Macの同じ場所にコピぺ
      2. 新Macで「option」を押しながら「写真」を起動して、今コピーしてきたライブラリを選択して読み込む


      Podcast

        1. podcastで、かつでCDから取り込んだものがあって、これがpodcastでは見た目では存在するがファイルが見つからないと言われる
        2. podcastのファイルは、ユーザ/名前/ ライブラリ / Group Containers / 243LU875E5.groups.com.apple.podcastsのキャッシュフォルダーに保存されている
        3. これを同じ箇所にコピペすればいいかと思ったが状況変わらず
        4. そこで「ブック」の「ライブラリに追加」でオーディオブックとして使っていくことにする


        Python

          1. pip3 install numpyができない
          2. pipのアップデートはこの段階でもできた
          3. x86_64とarm64の違いがあるらしい、後者でやれなくはないがまだいろいろ大変そうなので、x86_64のほうでやるようにする
          4. Finderからターミナルの「情報を見る」を開き「Rosettaを使用して開く」にチェックを付けたうえで、ターミナル起動
          5. python3 -m pip install numpy


          Python続き

          1. ぽいぽいパッケージ入れてさてjupyter使おうとしたらエラーが出る
          2. % jupyter notebook
          3. zsh: command not found: jupyter
          4. どうやら.zshrc作ってパスを通さないといけないらしい
          5. % echo $PATH 今のパスを確認してみる
          6. /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin 
          7. % touch .zshrc
          8. % open ~/.zshrc
          9. export PATH="$PATH:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
          10. % source ~/.zshrc
          11. だが command not found: jupyter
          12. その後python本体のpathが通ってないことに気づく
          13. そういえばパッケージ入れてるときになんか表示されてた
          14. WARNING: The scripts f2py, f2py3 and f2py3.8 are installed in '/Users/[user_name]/Library/Python/3.8/bin' which is not on PATH.  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
          15. 改めて % open ~/.zshrc
          16. export PATH="$PATH:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/[user_name]/Library/Python/3.8/bin"
          17. % source ~/.zshrc
          18. 無事にjupyter使えるようになった

          Pythonおまけ

          1. 上のjupyter問題のときにパッケージをいったん全部削除したかった
          2. pip3 freeze --user | xargs pip3 uninstall -y
          https://qastack.jp/programming/33412974/how-to-uninstall-a-package-installed-with-pip-install-user

          1. prophet使うときに毎度エラーメッセージが出ていた
          2. Importing plotly failed. Interactive plots will not work.
          3. pip3 install --upgrade plotly.
          https://github.com/facebook/prophet/issues/832


          1. prophetのcross_validationでdask使用時にエラーが出る
          2. pip3 install "dask[distributed]" --upgrade
          3. (これやってもdask使用時にエラーが出ることはある)




          pipで一括インストールする為のrequirements.txtの書き方
          https://www.sukerou.com/2019/03/pip-python-tips.html

          読めばわかるMACでのPATH設定を完全理解
          https://reffect.co.jp/windows/full_understanding_mac

          M1 Mac
          https://oku.edu.mie-u.ac.jp/~okumura/macosx/m1.html

          M1 Macの開発環境
          https://qiita.com/shibukawa/items/797b7cbb7e530842e6f7




          Homebrew

          1. homebrewをインストール
          2. brew install imagemagick
          3. そしたらpython3.9もインストールされちゃう
          4. そしたらpandasが使えない
          5. brew uninstall --force --ignore-dependencies python3
           


          あと、まっさらなosのまっさらなmacを手に入れたら、まずはosアップデートしておくことが大事だと学ぶ。



          参考文献


          旧Macから新Macへ「移行アシスタント」なしで移行
          https://rikei-fufu.com/2019/10/27/post-2187-mac-migration/


          macOS Catalinaでは、iTunesの分割によりメディアファイルの扱いに変更が
          https://minatokobe.com/wp/os-x/macos-catalina/post-57359.html


          Apple SiliconにおけるHomebrewのベストプラクティス
          https://qiita.com/yujiod/items/56002a7cef5b5a3be3fb


          macOS 11 Big Sur compatibility on Apple Silicon #7857
          https://github.com/Homebrew/brew/issues/7857


          Homebrew
          https://brew.sh/index_ja

          HomebrewでいれたPythonの削除
          https://qiita.com/baozam/items/268906b5984a37239b7d



          Apple M1 チップ搭載の Mac で macOS を再インストール中にパーソナライズエラーが表示される場合
          https://support.apple.com/ja-jp/HT211983

          Appleシリコンを搭載したMacでmacOS復旧を使用する
          https://support.apple.com/ja-jp/guide/mac-help/mchl82829c17/mac




          Homebrew&Python 立て直し

          現状課題

          • macにもともと入ってるpythonにpipでやってた、これを仮想環境でやりたい
          • x86_64(rosetta)の方でやってた、これをarm64でやりたい


          python環境を作り直す

          1. 今のスで入れてるライブラリをとりあえず削除
          2. pip freeze | grep -v '@' | awk -F'==' '{print $1}' | sudo xargs pip uninstall -y
          3. brewのインストール https://brew.sh/ja/ に行って、コマンドをコピーして、と思ったが
          4. macOSをお使いの場合は新しい.pkgインストーラーをお試し下さい
          5. とのことなので https://github.com/Homebrew/brew/releases/tag/4.4.20 で.pkgを落としてきて実行
          6. ちゃんとbrewがインストールできたかの確認 brew help
          7. unknown or unsupported macOS version: :dunno (MacOSVersionError) と言われる
          8. brew update-reset とするといいらしい、やってみた
          9. brew help やったらいい感じになったらしい
          10. 現在の PATH を確認 $ echo $PATH
          11. PATH のどこかに /opt/homebrew/bin が含まれていればOK
          12. $ which brew 出力が /opt/homebrew/bin/brew になっていれば、正しく PATH が設定されている
          13. xzのインストール $ brew install xz
          14. pyenvとは?Pythonのバージョンを管理してくれるツール
          15. Homebrewコマンドでpyenvをインストールする $ brew install pyenv
          16. pyenvからPythonをインストールする。ここからはpyenvコマンドを使います。まずは、以下のコマンドを入力します。$ pyenv install --list pyenvでインストールできるバージョンが出力されます
          17. $ pyenv install 3.11.0
          18. pyenvのpathを通す(以下を追記した)
          export PYENV_ROOT="$HOME/.pyenv"
            export PATH="$PYENV_ROOT/bin:$PATH"
              eval "$(pyenv init -)"

              などとやってたんだが、pymc5を使いたくて、そしてpymc5はminiforgeがいいよというので、pyenv環境は全部削除して、brewでminiforgeを入れ直すことにした




              1. miniforgeインストール  $ brew install miniforge
              2. condaのバージョン確認 $ conda --version
              3. conda 24.11.3 versionを返してくれればcondaの準備はOKです
              4. $ which conda
              5. /opt/homebrew/bin/conda path追加した方がいいのかな?でも以下は実行できてるしな conda env list
              6. 仮想環境作成しつつ、python本体をインストール(causal impactが3.11じゃないと動かないかもなので)
              7. $ conda create --name pm5_env python=3.11

              /opt/homebrew/Caskroom/miniforge/base
              /opt/homebrew/Caskroom/miniforge/base/envs/pm5_env


              1. $ conda activate pm5_env  としても
              2. CondaError: Run ‘conda init’ before ‘conda activate’ と言われる
              3. https://manabi-corpeng.com/conda-activate-init-error/ をみて、
              4. 元はここ https://manabi-corpeng.com/miniconda-install/#index_id5
              5. $ conda init zsh
              6. として、ターミナル再度立ち上げ直すと
              7. $ conda activate pm5_env できて、
              8. $ python --version
              9. でpython 3.11.11と返ってきた。無事に仮想環境にpython本体のインストール完了

              1. pymc5をインストール https://www.pymc.io/projects/docs/en/latest/installation.html
              2. $ conda install -c conda-forge "pymc>=5"
              3. (arviz, graphviz, lumpy, pandas, scipyなども)
              4. $ conda install -c conda-forge seaborn prophet matplotlib ipykernel ipywidgets
              5. $ conda install -c conda-forge seaborn matplotlib ipykernel ipywidgets
              6. (prophetがないと言われた、statsmodelsも)
              7. できんな $ conda install -c conda-forge prophet
              8. prophet causal impactも入れてな https://facebook.github.io/prophet/docs/installation.html#python

              uname -m
              arm64


              imagemagickインストール

              1. $ brew install imagemagick
              2. python 3.13がインストールされちゃったのを削除する
              3. $ brew uninstall --ignore-dependencies python

              brewの要らなくなったのを削除


              brew cleanup → 古いキャッシュや不要ファイルを削除(推奨)
              brew cleanup --prune=0 → すべて のキャッシュと不要ファイルを削除
              brew autoremove → 依存関係がなくなったパッケージを削除
              rm -rf $(brew --cache) → キャッシュ全削除


              conda clean --all すべてのキャッシュ・不要ファイルを削除(推奨)



              仮想環境のをbaseに適用したい


              仮想環境をアクティベート
              $ conda activate myenv

              インストール済みパッケージをエクスポート
              $ conda list --export > myenv_packages.txt

              base 環境に適用
              $ conda activate base
              $ conda install --file myenv_packages.txt


              conda activate pm5_env 
              conda deactivate

              conda activate base



              conda create --name base_backup --clone base
              このコマンドで、base 環境のコピーを base_backup という名前の新しい仮想環境として作成できます。

              不要になった古い環境を削除
              conda remove --name pm5_env --all