ITメモベース

Python・開発環境まわりの「つまずきポイント」を整理するITメモ


Pythonで PermissionError: [Errno 13] が出る具体例と回避策(Mac)

,

Pythonでファイル操作やスクリプト実行を行った際、
次のようなエラーが表示されることがあります。

PermissionError: [Errno 13] Permission denied

このエラーは、Pythonの文法や処理内容の問題ではなく、
ファイルやディレクトリの「権限(Permission)」が原因で発生します。

特にMacでは、
セキュリティ設定や保存場所の影響により、
初心者がつまずきやすいエラーの一つです。

この記事では、
Mac環境で PermissionError: [Errno 13] が出る具体的な場面と、
安全な回避策・確認ポイントをわかりやすく解説します。

この記事でわかること

  • PermissionError: [Errno 13] が出る具体的なケース
  • Macで起こりやすい権限エラーの原因
  • 安全な回避策と確認手順
  • やってはいけないNG対応

結論:原因は「アクセス権限がない」だけ

先に結論です。
PermissionError: [Errno 13] が出る原因は、ほぼ次のいずれかです。

  • 読み書き権限のないファイルを操作している
  • 実行権限のないファイルを実行している
  • システム保護領域にアクセスしている
  • sudo が必要な場所を通常権限で操作している

順番に具体例を見ていきます。

具体例① 読み取り・書き込み権限がないファイル

次のようなコードを実行すると、
PermissionError が出ることがあります。

with open("/protected/sample.txt", "w") as f:
    f.write("test")

確認方法

ls -l ファイル名

権限(rwx)が表示されます。

回避策① 操作可能なディレクトリを使う

Python初心者は、
ホームディレクトリ配下で作業するのが安全です。

例:

/Users/ユーザー名/project/

この配下であれば、
PermissionError が出る可能性は大きく下がります。

具体例② 実行権限がないファイルを実行している

Pythonファイルを次のように実行した場合、

./script.py

この形式では 実行権限 が必要です。

確認方法

ls -l script.py

x が付いていない場合、実行できません。

回避策② 実行権限を付与する

chmod +x script.py

または、
pythonコマンド経由で実行する方法が安全です。

python3 script.py

具体例③ システム保護領域にアクセスしている

Macでは、次のディレクトリは強く保護されています。

  • /System
  • /usr/bin
  • /Library

これらに対する操作は、
PermissionError が出て当然です。

回避策③ システム領域は触らない

学習・開発用途では、

  • system Python の修正
  • システムディレクトリへの書き込み

は不要です。

ユーザーディレクトリ+仮想環境(venv)を使うようにしましょう。

具体例④ 仮想環境を有効化せずに pip install している

仮想環境を使っている場合、
有効化していない状態で pip install を実行すると、
PermissionError が出ることがあります。

確認ポイント

(venv)

がターミナルに表示されているか確認してください。

よくあるNG対応(やってはいけない)

  • sudo python を使う
  • sudo pip install を多用する
  • 権限エラーを無視して進める
  • system Python を直接いじる

これらは、
後から環境が壊れる原因になります。

まとめ

Pythonで PermissionError: [Errno 13] が出る原因は、
次のいずれかであることがほとんどです。

  • ファイル・ディレクトリの権限不足
  • 実行権限が付与されていない
  • システム保護領域へのアクセス

sudoで無理やり解決しないことが、
最も重要な回避策です。


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

PAGE TOP