SciPyを入れたいのに、既存のPython環境を壊しそうで手が止まっていますか。
Python 3.15.1とSciPy 1.18.1は隔離環境で導入を試せます。まずwheelの適合を確認し、プロジェクトの依存関係と研究結果は別途検収してください。
この手順は、Apple Silicon Macで新しい課題を始める大学院生や研究者向けです。
旧環境を移行する人と、研究室の設定や引き継ぎを担当する人は、依存関係の記録と再現テストを重点的に確認してください。
最終更新日:2026年10月24日。バージョンと配布ファイルは、SciPyの公式リリース情報、PyPIのSciPy 1.18.1ファイル一覧、Python 3.15.1の公式リリース記録で確認しています。
新しい課題では標準Python環境を分けて作る
システムに付属するPythonや、別の課題で使っている環境へ直接SciPyを追加しないでください。課題ごとに仮想環境を作れば、インストールや更新の影響を切り分けやすくなります。Pythonのvenvは、プロジェクトごとに独立した環境を作成する仕組みです。Python公式のvenv説明を参照してください。
2026年10月21日にPython 3.15.1が公開され、SciPy公式のリリース情報は、SciPy 1.18.1がPyPIでPython 3.15向けのバイナリを初めて提供したバージョンだと案内しています。Pythonの公式リリース記録とSciPy公式発表を確認したうえで、手元の環境でも適合を確かめます。
導入は、対象のPythonからvenvを作り、その環境内でSciPyをインストールする流れです。Pythonの実行ファイル名はインストール方法によって異なるため、使いたいPython 3.15.1の実行ファイルを指定してください。
python3.15 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install scipy==1.18.1
インストール後は、表示されたバージョンだけで終わらせず、Pythonの実体とパッケージの読み込み元も記録します。
python --version
python -c "import sys, scipy; print(sys.executable); print(scipy.__version__); print(scipy.__file__)"
sys.executableが作成した.venv内を指し、SciPyのバージョンが意図したものになっていることを確認します。別のPythonを参照していれば、導入成功に見えても実際の研究作業では異なる環境を使っている可能性があります。
Apple Silicon Macではwheelの適合を先に確かめる
「Macで使える」というだけでは、すべてのPythonやCPU構成で同じ配布ファイルが使えるとは限りません。PyPIのSciPy 1.18.1ファイル一覧には、CPython 3.15とmacOS ARM64に対応するwheelが掲載されています。公式ファイル一覧で、対象のPython ABIとMacのアーキテクチャに合うファイルがあるか確認してください。
wheelのタグは、Python実装・ABI・プラットフォームの組み合わせを表します。たとえばApple Silicon向けのファイルがあっても、インストールに使うPythonのABIが異なれば、そのwheelが選ばれるとは限りません。プラットフォーム互換タグの仕様と照らし合わせます。
| 選択肢 | 向いている作業 | 先に確認すること | 判断 |
|---|---|---|---|
| 通常のCPython環境 | 課題で使う数値計算の導入と検証 | Python ABIとmacOS ARM64 wheelの一致 | 対応wheelがあれば、まずこちらで導入します |
| free-threaded Python環境 | 対応依存関係を個別に試す実験 | SciPyだけでなく全依存パッケージの対応wheel | 通常環境とは別の仮想環境で試します |
| ソースからのビルド | 適合するwheelがない場合の調査・構築 | ABI、CPU、macOSタグ、インデックス設定 | 原因を特定してから公式の構築手順に進みます |
wheelでインストールできたことは、配布ファイルが環境に適合したという確認です。課題のアルゴリズム、必要なSciPyモジュール、出力の妥当性まで検証できたことにはなりません。
pipがソースビルドを始めたら原因を絞る
pipがwheelを選ばずソースから構築しようとしても、すぐにコンパイラを追加しないでください。まず、インストールログに出たPython ABI、Macのアーキテクチャ、macOS向けタグ、パッケージインデックスを確認します。
切り分けには、ソース配布へのフォールバックを止めてインストールを試す方法があります。
python -m pip install --only-binary=:all: scipy==1.18.1
適合するwheelが見つからない場合は、この方法でインストールできません。その結果だけで「SciPyに対応wheelがない」と決めず、実行中のPythonが想定どおりか、pipが参照するインデックスがPyPIか、環境変数や設定ファイルで制約されていないかを調べます。
wheelが選ばれない理由を特定する前にビルドへ進むと、環境設定の問題とビルド要件の問題が混ざります。ログを保存し、公式のプラットフォーム互換タグ仕様と照合してから判断してください。
実際にソースビルドが必要と判断した場合は、SciPyの公式ビルド説明を確認します。必要なツールや手順は環境によって異なるため、手元の構成に合う公式手順を基準にしてください。
free-threaded版は別の実験環境にする
free-threaded Pythonを試す場合、通常のCPython環境に上書きせず、別の実行環境と仮想環境を用意します。SciPyのwheelはPythonのABIに依存するため、通常版とfree-threaded版で同じファイルが使えると想定しないでください。
導入前に、SciPyに加えてNumPyや課題で使うほかの依存パッケージも、対象ABIに合う配布ファイルを提供しているか確認します。依存の一部が対応していないと、SciPy単体の確認が通ってもプロジェクト全体を動かせないことがあります。
ここで確認できるのは、依存関係を含む環境が組めるかどうかです。インストール成功や並行処理の動作だけを根拠に、計算時間が短くなるとは判断しないでください。性能を評価する場合は、課題の代表的な処理を使い、標準版との条件をそろえて比較します。
小さな計算からプロジェクトの結果まで段階的に検収する
SciPyの読み込みを確認したら、課題で使う機能を小さな入力で試します。たとえば線形代数、最適化、統計など、実際に利用するモジュールを絞って確認してください。すべてのSciPy機能を試すより、研究コードが依存する機能を優先するほうが、検収漏れを見つけやすくなります。
python - <<'PY'
import numpy as np
import scipy
from scipy import linalg
a = np.array([[3.0, 1.0], [1.0, 2.0]])
b = np.array([9.0, 8.0])
x = linalg.solve(a, b)
print("SciPy:", scipy.__version__)
print("解:", x)
print("残差:", np.linalg.norm(a @ x - b))
PY
この計算は、SciPyとNumPyを読み込み、対象の関数で計算を実行できるかを見る簡単な例です。研究固有の妥当性を示すものではないため、課題で使う入力と期待値によるテストを別に用意します。
既存プロジェクトでは、環境を更新する前の依存関係記録と、新環境の状態を照合します。SciPyだけでなく、Python、NumPy、プロジェクト固有のパッケージ、入力データの前処理を確認してください。
| 検収対象 | 記録・確認する内容 | 合格判断の基準 |
|---|---|---|
| PythonとSciPy | 実行ファイルのパス、バージョン | 意図した仮想環境を参照している |
| 依存関係 | NumPyを含む課題のパッケージ一覧 | 必須依存を同じ条件で導入できる |
| 計算処理 | 代表的な入力、出力、境界条件 | 期待する挙動を課題側の基準で確認できる |
| 再実行記録 | 実行コマンド、設定、結果、ログ | 同じ手順で再検査できる記録が残っている |
再検証には、非機密のサンプルやプロジェクトの複製を使います。更新後に数値が異なった場合は、バージョン番号だけで同等性を判断せず、依存関係、アルゴリズム、入力処理、丸めや許容誤差の設定を調べてください。研究データの取り扱いに制限がある場合は、所属機関のルールに従い、承認されていないデータを外部環境へ移さないようにします。
Macが手元にない場合は検証場所を分ける
WindowsやLinuxだけでは、macOS向けwheelの選択やMac上での実行を直接確かめられません。一方、学校のHPC環境は大規模計算に適する場合があっても、macOS上での動作確認を代替するとは限りません。Macでの依存関係確認と、HPCで行う本計算を分け、課題の要件に合わせて使い分けてください。
ローカルにMacがない場合、非機密のプロジェクト複製を使った導入確認や、macOS固有の動作確認にリモートMacを検討できます。ただし、機関の規定、データの持ち出し可否、必要な操作方法、利用条件を先に確認します。MACCOMEのリモートMac環境に関する案内で、現在の利用条件を確かめてから、実データではなく検証用の複製で適合性を確認してください。
手元にMacを購入する方法は継続的に使いやすい反面、初期費用に加えて保守や管理が必要です。Linux・Windowsの既存環境だけで済ませる方法は追加調達を避けられますが、macOS固有の確認を残します。短期間の環境確認なら、Mac miniの案内を含め、利用条件と必要な構成を確認したうえで、リモートMacのレンタルと比較してください。長期にわたる高負荷計算や物理インターフェースが必要な作業は、レンタルが適するとは限りません。
Python 3.15.1とSciPy 1.18.1は、Apple Silicon Macで隔離環境から導入を試せます。まずwheelと依存関係を確認し、その後に課題の代表的な計算で結果を検収してください。