我正在将一个windows应用程序移植到OS X 10.6.8。这对我来说是一个新的平台,我面临着一些困难。
应用程序是一个小型web服务器(bottle+waitress),它通过一个子进程调用启动一个浏览器(基于chromium嵌入式框架)。
浏览器是一个应用程序文件,从gui启动时运行正常。
我是这样发起的:
subprocess.Popen([os.getcwd()+"/cef/cefclient.app", '--url=http://127.0.0.1:8100'])
不幸的是,这在OSError: permission denied
中失败。
我试着用一个sudo
运行脚本,得到了类似的结果。
我可以使用以下命令从shell启动应用程序:
open -a "cef/cefclient.app" --args --url-http://127.0.0.1:8100
但是
subprocess.Popen(['open', '-a', os.getcwd()+'/cef/cefclient.app', '--args', '--url-http://127.0.0.1:8100'])
失败,出现以下错误
FSPathMakeRef(/Users/.../cefclient.app) failed with error -43.
知道怎么解决这个问题吗?
或者
这取决于你是否想控制stdin/stdout或者启动应用程序是否足够。
文件
cefclient.app
实际上是一个目录(特别是application bundle),而不是应用程序可执行文件。真正的可执行文件位于包内,路径类似于Contents/MacOS/executable_name
。因此,要启动它,您需要执行以下操作:相关问题 更多 >
编程相关推荐