<p>您的问题是由<code>Tweetpony</code>使用的请求模块引起的。
必须提供<code>cacert.pem</code>文件到<code>requests.get</code>和<code>requests.post</code>函数的路径。
您可以通过提供<code>verify</code>参数或设置环境变量来完成此操作。</p>
<p>您可以在项目的GitHub问题部分找到修复:
<a href="https://github.com/Mezgrman/TweetPony/issues/14" rel="nofollow">https://github.com/Mezgrman/TweetPony/issues/14</a></p>
<p>有关更多信息,请阅读本期“请求”模块:
<a href="https://github.com/kennethreitz/requests/issues/557" rel="nofollow">https://github.com/kennethreitz/requests/issues/557</a></p>
<p>代码也取自此链接。</p>
<pre><code>#!/usr/bin/env python
# requests_ssl.py
# main script
import requests
import os
import sys
# stolen and adpated from <http://stackoverflow.com/questions/7674790/bundling-data-files-with-pyinstaller-onefile>
def resource_path(relative):
return os.path.join(getattr(sys, '_MEIPASS', os.path.abspath(".")),
relative)
cert_path = resource_path('cacert.pem')
# this would also work, but I'd rather not set unnecessary env vars
# os.environ['REQUESTS_CA_BUNDLE'] = cert_path
print requests.get('https://www.google.com/', verify=cert_path).text
</code></pre>
<p>规范文件:</p>
<pre><code># PyInstaller spec file
a = Analysis(
['requests_ssl.py'],
pathex=['.'],
hiddenimports=[],
hookspath=None)
a.datas.append(('cacert.pem', 'cacert.pem', 'DATA'))
pyz = PYZ(a.pure)
exe = EXE(
pyz,
a.scripts,
a.binaries,
a.zipfiles,
a.datas,
name=os.path.join('dist', 'requests_ssl'),
debug=False,
strip=None,
upx=True,
console=True)
</code></pre>