我编写了一个连接到本地db.sqlite3文件的程序,当我在调试器或终端中运行命令时,它运行正常。但是,我最近尝试通过使用Launch Control在OS X中创建启动代理来自动执行此操作。当我这样做时,它在下面失败,并显示以下错误消息:
engine = create_engine('sqlite:///db.sqlite3', connect_args={'check_same_thread':False})
error:
sqlalchemy.exc.OperationalError: (OperationalError) unable to open database file None None
我认为这可能是文件权限,因此我将其更改为每个人的“读/写”,但仍然没有骰子。以下是我在Launch Control / lauchd中调用程序的方法。关于这个的任何指针都将是一个巨大的帮助,因为我有其他我想运行的脚本也使用sqlite。谢谢!
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>local.brianharnett1.infringe</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/bin/python3</string>
<string>/Users/brianharnett1/Documents/Infringer/infringe.py</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>StandardErrorPath</key>
<string>/tmp/local.brianharnett1.infringe.err</string>
<key>StandardOutPath</key>
<string>/tmp/local.brianharnett1.infringe.out</string>
</dict>
</plist>
答案 0 :(得分:0)
我发现了这一点。 Launch Control和Launchd有一个工作目录参数。使用我的python项目目录填充它就可以了!