python-3.x - Sqlite3,OperationalError:无法在 Mac OS、外部硬盘驱动器上打开数据库文件
问题描述
我查看了这方面的几个主题并尝试了各种建议的解决方案(例如这里),但我仍然无法打开我的 sqlite 数据库。
它曾经运行顺利,但最近(我无法确定何时)我得到了错误:
Sqlite3, OperationalError: unable to open database file
当前设置:数据库位于通过 USB 连接到 mac mini 的外部硬盘上。我使用 macbook pro 通过以太网连接到这个 mac mini“服务器”。在我的 macbook pro 中,以下代码返回错误:
import sqlite3 as sq3
import os
filename = '/Volumes/AGCM_DB/Database/AGCM.db'
conn = sq3.connect(filename)
我尝试了什么:
直接从 mac mini 运行代码可以正常工作
如果我将数据库复制/粘贴到我的 macbook pro 上,则运行代码可以正常工作。
外置硬盘、macbookpro 和 mac mini 上有足够的可用空间
从我的macbook pro,我跑了
打印(os.path.exists(文件名))
它返回 True 所以我的 macbook pro 通过 mac mini “看到”外部硬盘驱动器上的文件。
我检查了文件夹数据库和文件 AGCM.db 的权限,我的 macbook pro 具有读写权限。
我的猜测是我在某处遗漏了一些许可(但在哪里?)。
Mac Mini:OS High Sierra Macbook pro:OS Big Sur
编辑:我做了另一个读取“.csv”文件的测试并得到一个错误“不允许操作”所以这告诉我我有一个权限问题,这不是一个 sqlite 问题
解决方案
好的,我通过尝试将 macbook pro 命令行中的文件简单复制/粘贴到外部驱动器来解决这个问题
cp <source> <destination>
它奏效了。因此,我的 python 编辑器缺少权限:我在 macbook pro 上授予了对 PyCharm 的完整磁盘访问权限,现在我在外部硬盘驱动器中获得了所需的目录列表,并且还可以访问其上的数据库。
推荐阅读
- excel - 复制粘贴的传递范围单元格:Excel VBA
- jenkins - 如果詹金斯管道中的其他条件“从文件中读取输出”
- puppet - Puppet Hiera v5:函数 lookup() 未找到值
- selenium - 无法在无头 chrome 中处理 Microsoft 登录身份验证弹出窗口[Selenium using java]
- php - 如何使用按钮在 php 中回显一个函数?
- html - CSS 背景属性
- php - 从 MySQL 中提取大量数据
- android - Stacktrace 在 Google Play 控制台中被混淆了
- uwp - 使用 64BitCompiler 时 UWP 构建失败
- android - 如何将声音保存到内存的下载文件夹