mac: py2app 未找到 cacert.pem

mac: py2app not finding cacert.pem

我使用 py2app 创建的应用无法找到 cacert.pem。下面显示的错误堆栈表明它正在查看应用程序包中的 zip 文件。我检查了 zip 文件,cacert.pem 似乎在正确的位置。

我尝试了建议的解决方案 here 将 cacert.pem 复制到请求包,以便在 p2app 编译期间可以找到它,但没有成功。

我在 Mac 上使用带 python 3.5 的 Anaconda。

有什么想法吗?

  File "/Users/chuck/Documents/patelco/monitor/dist/monitor.app/Contents/Resources/__boot__.py", line 98, in <module>
    _run()
  File "/Users/chuck/Documents/patelco/monitor/dist/monitor.app/Contents/Resources/__boot__.py", line 82, in _run
    exec(compile(source, path, 'exec'), globals(), globals())
  File "/Users/chuck/Documents/patelco/monitor/dist/monitor.app/Contents/Resources/monitor.py", line 82, in <module>
    send_text_message(report_text)
  File "/Users/chuck/Documents/patelco/monitor/dist/monitor.app/Contents/Resources/monitor.py", line 46, in send_text_message
    message = client.messages.create(to="+1510845xxxx", from_="+1415758xxxx", body=msg)
  File "twilio/rest/api/v2010/account/message/__init__.pyc", line 92, in create
  File "twilio/base/version.pyc", line 205, in create
  File "twilio/base/version.pyc", line 47, in request
  File "twilio/base/domain.pyc", line 46, in request
  File "twilio/rest/__init__.pyc", line 122, in request
  File "twilio/http/http_client.pyc", line 68, in request
  File "requests/sessions.pyc", line 618, in send
  File "requests/adapters.pyc", line 407, in send
  File "requests/adapters.pyc", line 226, in cert_verify
OSError: Could not find a suitable TLS CA certificate bundle, invalid path: /Users/chuck/Documents/patelco/monitor/dist/monitor.app/Contents/Resources/lib/python35.zip/certifi/cacert.pem

这是 requests 中的一个错误,它是 recently fixed 但尚未进入发布版本。如果您可以使用 requests 的开发版本,您可以从 github 存储库安装(如果已经存在则升级),这样当您构建您的应用程序时,您拥有包含此修复的最新版本:

pip install -U https://github.com/requests/requests/zipball/master