Google Cloud VM运行Python Bot时遇Permission denied错误求助
解决GCP VM中Python Bot保存文件的权限拒绝问题
错误原因分析
- 路径错误:代码中使用了绝对路径
/CE-Assistant/part{0}.png,这个路径指向系统根目录下的CE-Assistant文件夹,而你实际克隆的项目在/home/andrewgarcha/CE-Assistant,普通用户没有在根目录创建文件夹的权限,导致报错。 - 目录所有权问题:你用
sudo git clone克隆项目,导致CE-Assistant目录的所有者是root,普通用户andrewgarcha没有该目录的写入权限。
解决方案
1. 修正文件保存路径
把硬编码的绝对路径改成相对路径或正确的用户目录路径:
- 相对路径(推荐):直接使用相对于项目根目录的路径,脚本会在当前运行目录(即
/home/andrewgarcha/CE-Assistant)下创建文件:
path = Path(f"part{part}.png") # 直接保存到项目根目录 # 或者保存到子文件夹 path = Path(f"Pictures/part{part}.png")
- 正确绝对路径:明确指向用户家目录下的项目文件夹:
path = Path.home() / "CE-Assistant" / f"part{part}.png"
2. 修复目录所有权
如果是因为sudo克隆导致目录权限问题,执行以下命令把目录所有权改成当前用户:
sudo chown -R andrewgarcha:andrewgarcha /home/andrewgarcha/CE-Assistant
3. 避免使用sudo克隆项目
后续克隆项目时不要加sudo,直接用普通用户权限克隆:
git clone {github} cd CE-Assistant python3 main.py
这样项目目录的所有者就是当前用户,不会出现权限拒绝问题。
内容的提问来源于stack exchange,提问作者andy
相关产品推荐
相关产品推荐

