我有一些 python 代码可以在我的 Windows 机器上的 python ide 和 cmd 提示符下成功运行。
当我用 pyinstaller 编译(到一个文件中)后,我收到以下错误:
Traceback <most recent call last>:
File "<string>", line 51, in <module>
File "build\bdist.win32\egg\oauth2\__init__.py", line 682, in request
... ((traceback through httplib2 and then ssl))
ssl.SSLError: [Errno 185090050] _ssl.c:340: error:0B084002:x509 certificates routines:X509_load_cert_crl_file:system lib
导致错误的我的代码子集如下:
import oauth2 as oauth
import httplib2
import urlparse
#consumer inputs
consumer_key = 'blah'
consumer_secret = 'blah'
consumer = oauth.Consumer(consumer_key, consumer_secret)
#other inputs
request_token_url = 'https://api.linkedin.com/uas/oauth/requestToken?scope=r_network'
access_token_url = 'https://api.linkedin.com/uas/oauth/accessToken'
authorize_url = 'https://api.linkedin.com/uas/oauth/authorize'
#instantiate consumer object
client = oauth.Client(consumer)
resp, content = client.request(request_token_url, "POST", )
应该是一个简单的api请求!我已经仔细查看并尝试在代码开头使用以下内容:
httplib2.Http(ca_certs = 'cacert.pem')
...那不起作用。
我还用新的 cacert.pem 替换了 httplib2 文件夹中的 cacerts.txt 文件(重命名为 cacerts.txt)...但这不起作用。
我尝试用以下方法禁用 ssl:
httplib2.Http(disable_ssl_certificate_validation=True)
...但这没有用。
如何使用 pyinstaller 以不会混乱的方式编译我的 python 脚本?