ObsidianのTerminalプラグインでSyntaxErrorが出たときの対処法
はじめに
Obsidian のプラグイン「Terminal」(by polyipseity)で統合ターミナルを開こうとした際に SyntaxError が表示される場合の原因と修正方法を解説します。
ターミナルを開こうとすると、以下のようなエラーが表示されることがあります。
File "<string>", line 182
_PipePty(selector, pty_fd) as pipe_pty,
^
SyntaxError: invalid syntax
このエラーはプラグインのバグではなく、macOS の Python 環境の問題です。設定を 1 箇所変えるだけで直ります。
原因
macOS の GUI アプリはシェルの PATH を引き継がないことが原因です。
macOS には Python が 2 つ存在します。
| パス | バージョン | 管理者 |
|---|---|---|
/usr/bin/python3 | 3.8.2 | Apple(システム固定) |
/opt/homebrew/bin/python3 | 3.13 / 3.14 など | Homebrew(自分でインストール) |
ターミナルから python3 と打つと Homebrew 版が使われますが、Obsidian のような GUI アプリは .zshrc や .bash_profile の PATH 設定を読みません。そのため、プラグインが python3 を呼び出すとシステムの /usr/bin/python3(3.8.2)が使われてしまいます。
Terminal プラグインのコードは括弧付き with 文を使っています。
with (
_PipePty(selector, pty_fd) as pipe_pty,
...
):この構文は Python 3.10 以降でしか使えないため、Python 3.8 では SyntaxError になります。
確認方法
自分の環境がこの問題に該当するか確認するには、ターミナルで以下を実行します。
/usr/bin/python3 --version
# → Python 3.8.2Python 3.8.x と表示されればこの問題に該当します。Apple Silicon Mac では大抵このバージョンが固定されています。
修正方法
プラグインの設定ファイルを書き換えて、使用する Python のパスをフルパスで指定します。
以下のファイルをテキストエディタで開く。{Obsidianのvaultフォルダ}/.obsidian/plugins/terminal/data.json
"pythonExecutable": "python3" という行を探す(複数ある)。
すべて "pythonExecutable": "/opt/homebrew/bin/python3" に書き換える。
設定を反映するため、Obsidian を再起動する。
具体的な変更内容は以下のとおりです。
// 変更前
"pythonExecutable": "python3"
// 変更後
"pythonExecutable": "/opt/homebrew/bin/python3"Homebrew Python のパスを確認するには
ターミナルで以下を実行すると、Homebrew でインストールした Python のパスを確認できます。
which python3
# → /opt/homebrew/bin/python3プラグインの設定画面から変更する場合
Obsidian の設定 → Terminal → プロファイル(Profile)→ 各プロファイルの「Python executable」欄に /opt/homebrew/bin/python3 を入力します。
なぜ /usr/bin/python3 は古いのか
macOS の /usr/bin/python3 は Apple が管理しており、OS の内部ツールとの互換性維持のために意図的に古いバージョンで固定されています。自分でアップデートすることはできず、これは正常な状態です。
開発用途では Homebrew などで別途 Python をインストールして使うのが一般的です。





