macOS下PyCharm调试时调用os.listdir()提示权限不允许
检查PyCharm的全磁盘访问权限
macOS的隐私安全设置中,PyCharm可能未获取全磁盘访问权限。打开「系统偏好设置」→「安全性与隐私」→「隐私」标签,找到「全磁盘访问权限」,确认PyCharm在列表内且已勾选。调试器作为PyCharm的子进程,会继承其权限,缺少该权限可能无法访问外部挂载的服务器目录。确认服务器导出目录的实际挂载权限
服务器导出的共享目录(如SMB/NFS类型),macOS挂载时可能附加额外权限限制,即使目录本身设为「所有人读写」,挂载后的实际有效权限也可能不符。在Shell中执行ls -ld /path/to/exported/dir查看实际权限,再用mount命令找到该目录的挂载条目,检查是否存在noexec等限制权限的参数,必要时重新调整挂载选项后再测试。切换PyCharm的Python解释器为系统版本
若你在PyCharm中使用虚拟环境解释器,可能存在权限继承问题。尝试切换到Shell中运行的系统默认Python3:打开PyCharm的「File」→「Settings」→「Project: [你的项目名]」→「Python Interpreter」,选择系统Python3的路径后重新调试。使用绝对路径替代相对路径
调试器的工作目录可能与Shell运行时不同,导致代码访问的路径并非预期的服务器导出目录。可以在代码中先打印os.getcwd()确认当前工作目录,或者直接使用目录的绝对路径(如/Volumes/ServerExportDir)。重置PyCharm的权限缓存
关闭PyCharm后,在终端执行以下命令重置权限缓存:tccutil reset All com.jetbrains.PyCharm重新打开PyCharm,允许系统弹出的所有权限请求后再测试调试功能。
检查并清理目录的扩展属性
服务器导出的目录可能带有macOS扩展属性(如com.apple.quarantine)限制访问。执行xattr -l /path/to/exported/dir查看属性,若存在异常属性,可通过xattr -d com.apple.quarantine /path/to/exported/dir删除后再尝试调试。
内容的提问来源于stack exchange,提问作者Craig S. Anderson

