SQL Alchemy作为代理程序运行时无法打开数据库文件

时间:2014-12-09 22:50:53

标签: python sqlite python-3.x sqlalchemy launchd

我编写了一个连接到本地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>

1 个答案:

答案 0 :(得分:0)

我发现了这一点。 Launch Control和Launchd有一个工作目录参数。使用我的python项目目录填充它就可以了!