2026年4月24日金曜日

python環境構築

よく忘れる

# どんな仮想環境あったっけ
conda env list
conda info -e  # どっちでもいい

# 仮想環境を有効化
conda activate pm5

conda deactivate

# 何を入れてたっけ
conda list

# 不要になった古い環境を削除
conda remove --name base_backup  --all
# condaのキャッシュ削除
conda clean --all

# 今ある環境をのうち1つをcopyしてbackupとしたい
conda create --name base_yyyymmdd --clone base


# 設定ファイル(YAML)を書き出しておくと、
conda env export > environment_20250505.yml

# もしもグダグダな環境になってしまったなどの場合は以下で全く同じ環境を再構築できる
conda env create -f environment_20250505.yml 
# 別の名前で新しい仮想環境を作りたい場合は
conda env create -f environment_20250505.yml  -n new_project_name


# condaの復元機能: インストールするたびに、変更前の状態を記録してくれるrevisionという機能がある
conda list --revisions
# これを見ると、何時何分に何を入れたかが履歴として出てくる。
# もし新しいライブラリを入れて壊れたら、番号を指定してサクッと戻せる。
conda install --revision 5  # 5番の状態に戻す



homebrewを削除して一度きれいにするまでのなんやかんや(クリックで展開)

まっさらにしていく

# brewで入ってるもの確認
brew list --formula
brew list --cask

# homebrew含め全部削除する
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall.sh)"
Homebrew uninstalled!
The following possible Homebrew files were not deleted:
/opt/homebrew/bin/
/opt/homebrew/etc/
/opt/homebrew/lib/
/opt/homebrew/share/
/opt/homebrew/var/
You may wish to remove them yourself.

と言われるので、

sudo rm -rf /opt/homebrew/bin
sudo rm -rf /opt/homebrew/etc
sudo rm -rf /opt/homebrew/lib
sudo rm -rf /opt/homebrew/share
sudo rm -rf /opt/homebrew/var

ディレクトリが消えているか確認する

# ターミナルで:
ls /opt/homebrew
# 何も表示されなければ削除成功
#まだ残っていたら、ディレクトリ名が表示される

# brew コマンドが使えないか確認
brew --version
# command not found と出れば Homebrew はもう存在しない
# もしバージョンが出たら、どこかに残ってる

# PATH に残っていないか確認
echo $PATH
# /opt/homebrew/bin が PATH に残っていなければ OK
# .zshrc や .bash_profile に残っている場合は、手動で削除

vim ~/.zshrc
# 編集したら保存して

# シェルを再読み込み
source ~/.zshrc

# シェルを完全に再起動
# すでに開いているターミナルは古い環境を保持している場合がある
# 新しいターミナルを開いて確認

改めてHomebrewを新規インストール

# https://brew.sh/ja/
# macOSをお使いの場合は新しい.pkgインストーラーをお試し下さい とのことなので.pkgを落としてきて実行
# https://github.com/Homebrew/brew/releases/tag/4.6.6

vim ~/.zshrc
# export PATH='hoge'の下に eval "$(/opt/homebrew/bin/brew shellenv)" を追記

# ちゃんとbrewがインストールできたかの確認
brew help
# 大丈夫っぽい

# 現在の PATH を確認
echo $PATH
# PATH のどこかに /opt/homebrew/bin が含まれていればOK

which brew 
# 出力が /opt/homebrew/bin/brew になっていれば、正しく PATH が設定されている

miniforgeインストール

brew install miniforge

# condaのバージョン確認
conda --version
# conda 25.3.1 versionを返してくれればcondaの準備はOKです

pymc5用

一応動作はしてるが、condaとpipを混ぜてるのであまりいい状態ではないかも
conda create --name pm5 python=3.11

conda init zsh
# として、ターミナル再度立ち上げ直す

conda activate pm5

# pymc5をインストール https://www.pymc.io/projects/docs/en/latest/installation.html
conda install -c conda-forge "pymc>=5"
# arviz, graphviz, numpy, pandas, scipyなども一緒に入る

conda install -c conda-forge seaborn matplotlib ipykernel ipywidgets
# statsmodelsも入る

# conda install -c conda-forge prophet  # ないって言われる
python -m pip install prophet
# https://facebook.github.io/prophet/docs/installation.html#python

python -m pip install tfcausalimpact
# https://github.com/WillianFuks/tfcausalimpact

# 以下がないとprophetというかパラメーターの最適化だっけ、後半のところができないみたい
conda install -c conda-forge dask
conda install -c conda-forge plotly

imagemagickインストール

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

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

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



pycaret用

  • condaでやるとpycaret動作させるまでに手こずる
  • colabだとpythonバージョンが新しすぎてpycaret動作しない
  • よって、pythonとpycaretのバージョンはほどほどにしつつ、pycaretを確実に動作させるために、基本pipで入れていく
conda create -name pyc3 python=3.10
conda activate pyc3
pip install pycaret==3.0.4
# このときmatplotlib numba numpy pandas plotly scikit-learn scipyもpip(pypi)で入ってる

pip install "pycaret[analysis]==3.0.4"

pip install jpholiday
python -m pip install jpholiday

で、VS codeで、

from pycaret.classification import * しようとすると、

ImportError: cannot import name 'interp' from 'scipy' (/opt/homebrew/Caskroom/miniforge/base/envs/pyc3/lib/python3.10/site-packages/scipy/init.py) と言われた

pip install "scipy<1.13.0" 状況変わらず

pip install scipy==1.11.4

ImportError: cannot import name '_format_load_msg' from 'joblib.memory' (/opt/homebrew/Caskroom/miniforge/base/envs/pyc3/lib/python3.10/site-packages/joblib/memory.py)

conda list joblib のバージョンは、1.5.3だったので

pip install joblib==1.3.2

import pycaretしないままだったので、ひょっとしたら

pip install scipy==1.11.4 pip install joblib==1.3.2 はやらなくてもよかったのかもしれないが、

from pycaret.classification import *は通った。

でも、reg1 = setup(df1, target="is_purchased", session_id=1)でNameError: name 'pkg_resources' is not defined と言われる。

pip install "setuptools<70.0.0"

Successfully installed setuptools-69.5.1

無事にpycaretは実行できるようになった。

pip freeze > before_seaborn.txt
# conda list --export > conda_env_before_seaborn.txt # 上と同じなのでやらなくていい

conda list > conda_list_before_seaborn.txt

とか思ってたが見落としてただけでseaborn入ってたー

なのでこれでひとまずOKとして終了