我正在尝试编译一个简单的Python程序,它使用boto包将文件上载到S3 bucket中,并将文件上载到一个单独的、可再发行的.exe文件中。我愿意接受任何编译方法。到目前为止,我已经尝试了bbfreeze
和{
import boto
#...snip...
fname_base = os.path.basename(fname)
s3 = boto.connect_s3(aws_access_key_id=_aws_key, aws_secret_access_key=_aws_secret_key, is_secure=False);
bucket = s3.get_bucket(_bucket)
key = bucket.new_key(fname_base)
key.set_contents_from_filename(fname)
使用可执行捆绑实用程序编译并运行我得到:
^{pr2}$我在WindowsXPSP3上使用ActiveState Python2.6。boto软件包安装有:
easy_installer --always-unzip boto
我使用了--always-unzip
选项,该选项基于found here关于py2exe
与已解包的egg文件有关的信息。不幸的是,当我使用bb-freeze
构建可执行文件时,我得到的错误是相同的。在
py2exe
的输出在结尾处包含以下信息:
The following modules appear to be missing
['_scproxy', 'email.Encoders', 'email.MIMEBase', 'email.MIMEMultipart', 'email.MIMEText', 'email.Utils', 'simplejson']
这给了我们一些提示。我尝试了其他帖子中建议的方法,其中建议在使用py2exe
编译时使用-i
选项,但不幸的是没有任何帮助。在其他的问题中,用户正在做他们自己的显式包含电子邮件子模块。不幸的是,我不知道如何使这些解决方案适应我的情况,而且仅仅添加-i
并没有阻止{
有人能帮我把这些代码捆绑起来重新分发吗?在
我知道这是一个老问题,但我也遇到了同样的问题,并在仍然使用py2exe和py2app时修复了它。只需使用'packages'选项而不是'includes'选项设置.py公司名称:
希望有帮助。在
我真的让这个起作用了。答案是抛弃boto,改用海报库。我仍然使用boto为POST生成一个签名策略和必要的表单字段,但是执行POST的实际可执行文件现在只包括poster。在混合使用poster的情况下,py2exe在为我创建独立的可执行文件以进行重新分发方面没有任何问题。在
我已经成功地用boto&py2exe创建了工作exe
添加到您的脚本.py在
下一个错误是HTTPS连接,似乎py2exe以某种方式“隐藏”了证书文件。。 解决这个问题的方法是 1) 使用HTTP 或者 2) 不检查证书
1)HTTP
^{pr2}$“is_secure=False”是非常重要的
2)不检查证书
“validate\u certs=False”是不重要的
如果有人知道如何修复证书验证中的错误,请回复!在
相关问题 更多 >
编程相关推荐