はじめに
Google Colabで書かれたプログラムを共有してもらったのですが、Google Colab上で実行するともっさりしていてストレスたまります。
ローカル環境で実行する方法を模索しました。
パソコン版ドライブ(Google Drive)をインストール
こちらはWindows側にインストールします。
support.google.com
アドレスはG:\マイドライブになります。
通常のGoogle Driveのフォルダ構成は/content/drive/MyDriveです。これを完全にWSL2上で再現するようにします。
Gドライブをマウントする
マウントポイントを作成する
sudo mkdir /mnt/g
毎回自動的にマウントするように設定する
/etc/fstabファイルを開く
sudo nano /etc/fstab
- マウント設定を書き込む
G: /mnt/g drvfs defaults 0 0
- WSL2の再起動
シンボリックリンクを作成する
/content/driveフォルダを作成する
sudo mkdir -p /content/drive
- シンボリックリンクを作成する
sudo ln -s /mnt/g/マイドライブ /content/drive/MyDrive
WSL2で実行しているVS CodeにJupyter拡張機能をインストールする
書いてあるとおりです。
Python仮想環境にipykernelをインストールする
書いてあるとおりです。
pip install ipykernel
または
uv add ipykernel
コードの一部書き換え
コードは一部書き換えが必要です。 Google Colabでもそれ以外でも動作するように以下のように書き換えます。 あくまで一例です。
if "google.colab" in sys.modules: !pip install xgboost statsmodels shap !apt-get -qq install -y fonts-liberation else: print("ローカル環境: パッケージは既にインストール済みと想定します")
try: from google.colab import drive drive.mount('/content/drive') except ModuleNotFoundError: print("Colab環境ではありません。ローカル環境で実行中です")
VS Codeの設定
出力が長くなっても良いように、以下をsettings.jsonに書き込みます。
"notebook.output.scrolling": true
フォントを認識しない問題
フォントをUbuntu自体にインストールしても認識してくれませんでした。
以下で解決しました。
matplotlibのキャッシュを削除する
import matplotlib import os # matplotlibのキャッシュディレクトリを取得 cache_dir = matplotlib.get_cachedir() print(f"Matplotlib cache directory: {cache_dir}") # キャッシュディレクトリ内のfontlistファイルを検索して削除 for file in os.listdir(cache_dir): if file.startswith('fontlist') and file.endswith('.json'): file_path = os.path.join(cache_dir, file) try: os.remove(file_path) print(f"Removed cache file: {file_path}") except OSError as e: print(f"Error removing file {file_path}: {e}") print("\nキャッシュを削除しました。次にカーネルを再起動してください。")