You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kivy运行时遇config.ini权限错误,求解释与修复方案

Kivy运行PermissionError问题:原因与修复

问题描述

作为Python和终端新手,运行app.py时遇到以下问题:

  • Kivy检测到旧版本配置(版本21,当前要求27),尝试升级配置但失败
  • 触发PermissionError,无法写入/Users/mhpolymath/.kivy/config.ini
  • 激活FileHandler日志器时,同样因权限拒绝无法写入日志文件/Users/mhpolymath/.kivy/logs/kivy_24-01-15_0.txt

完整错误日志

mhpolymath@Haidars-MacBook-Pro invaders % python app.py
[WARNING] [Config      ] Older configuration version detected (21 instead of 27)
[WARNING] [Config      ] Upgrading configuration in progress.

[ERROR  ] Error while activating FileHandler logger
Traceback (most recent call last):
File "/Users/mhpolymath/miniconda3/envs/flapgame/lib/python3.12/site-packages/kivy/config.py", line 598, in write
with open(self.filename, 'w', encoding="utf-8") as fd:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
PermissionError: [Errno 13] Permission denied: '/Users/mhpolymath/.kivy/config.ini'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/Users/mhpolymath/miniconda3/envs/flapgame/lib/python3.12/site-packages/kivy/logger.py", line 310, in emit
self._configure()
File "/Users/mhpolymath/miniconda3/envs/flapgame/lib/python3.12/site-packages/kivy/logger.py", line 283, in _configure
FileHandler.fd = open(filename, 'w', encoding=FileHandler.encoding)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
PermissionError: [Errno 13] Permission denied: '/Users/mhpolymath/.kivy/logs/kivy_24-01-15_0.txt'
[ERROR  ] Unable to write the config </Users/mhpolymath/.kivy/config.ini>
Traceback (most recent call last):
File "/Users/mhpolymath/miniconda3/envs/flapgame/lib/python3.12/site-packages/kivy/config.py", line 598, in write
with open(self.filename, 'w', encoding="utf-8") as fd:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
PermissionError: [Errno 13] Permission denied: '/Users/mhpolymath/.kivy/config.ini'

[INFO   ] [Kivy        ] v2.3.0
[INFO   ] [Kivy        ] Installed at "/Users/mhpolymath/miniconda3/envs/flapgame/lib/python3.12/site-packages/kivy/__init__.py"
[INFO   ] [Python      ] v3.12.0 | packaged by Anaconda, Inc. | (main, Oct  2 2023, 12:22:05) [Clang 14.0.6 ]
[INFO   ] [Python      ] Interpreter at "/Users/mhpolymath/miniconda3/envs/flapgame/bin/python"
[INFO   ] [Logger      ] Purge log fired. Processing...
[INFO   ] [Logger      ] Purge finished!
[INFO   ] [Image       ] Providers: img_tex, img_imageio, img_dds, img_sdl2, img_pil (img_ffpyplayer ignored)
[INFO   ] [Factory     ] 195 symbols loaded
[INFO   ] [Text        ] Provider: sdl2
[INFO   ] [Audio       ] Providers: audio_sdl2 (audio_ffpyplayer, audio_avplayer ignored)

错误原因

核心问题是当前用户没有.kivy目录及文件的读写权限,大概率是之前用sudo运行过Kivy程序,导致目录所有权被改为root,普通用户无法修改。

修复方案

1. 修复目录所有权(推荐)

在终端执行以下命令,将.kivy目录的所有权改回当前用户:

sudo chown -R mhpolymath:mhpolymath /Users/mhpolymath/.kivy

执行后输入系统密码,完成后重新运行python app.py即可。

2. 删除旧配置目录(权限修复无效时使用)

如果修复权限后仍有问题,可直接删除旧的.kivy目录,让Kivy重新生成全新的配置和日志目录:

rm -rf /Users/mhpolymath/.kivy

注意:删除前确认目录内没有需要保留的自定义配置,删除后运行程序会自动创建新目录。

3. 临时指定配置目录(测试用)

如果不想修改原目录权限或删除旧目录,可临时指定Kivy使用当前目录下的临时配置:

export KIVY_HOME="./.kivy_temp"
python app.py

这样配置和日志会保存在当前项目目录的.kivy_temp文件夹中,避开原目录的权限问题。


内容的提问来源于stack exchange,提问作者MHPolymath

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 02:25:57