mac 使用 pyinstaller 打包 app 使 subprocess 失效的问题

mac 使用 pyinstaller 打包 app 使 subprocess 失效的问题

  • 使用pycharm开发 pyqt5 ,其中需要用到 subprocess 下载一些内容,

调用命令的方式是:

import subprocess
    # 这里 cmd 是一个str array
    subprocess.Popen(cmd) 

我们用到的命令是 aws 。遇到的问题是,使用编译器运行的时候能够正常运行,

但使用pyinstaller 命令打包成 .app 之后,命令就不能正常执行。

添加log之后,发现返回的错误是: can not find file or filepath 'aws'

翻了好多文章之后,找到了相似的问题:
https://stackoverflow.com/questions/25917996/after-turning-into-osx-app-python-subprocess-cant-call-external-console-comman

其中有一句话说,让我们尝试一下使用全路径进行调用命令,不要用我们在mac中配置好的路径,

因为我们打包好以后,路径会发生变化。

使用 查询命令查询 aws 的路径:

which aws

把查到的全路径替换 aws

/usr/local/bin/aws --> aws

之后再打包,发现命令能够正常执行了。

仅此记录一下,其他类型的程序打包,如果遇到了调用命令行执行命令的情况,

应该也可以采取类似的策略。

你可能感兴趣的:(mac 使用 pyinstaller 打包 app 使 subprocess 失效的问题)