Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python3中使用boto_Python_Python 3.x_Boto - Fatal编程技术网

在Python3中使用boto

在Python3中使用boto,python,python-3.x,boto,Python,Python 3.x,Boto,我有Boto2.3.0Neo分支和Python3.3。 我使用boto从simpledb收集数据,效果很好。 然而,现在当我尝试boto连接到s3时,我得到了错误。谁能给我指一下正确的方向吗。我真的不想降级我的python,因为我的整个项目都在python 3.3中 以下是我编写的命令列表: >>> from boto.s3.key import Key >>> k = Key(bucket) >>>

我有Boto2.3.0Neo分支和Python3.3。 我使用boto从simpledb收集数据,效果很好。 然而,现在当我尝试boto连接到s3时,我得到了错误。谁能给我指一下正确的方向吗。我真的不想降级我的python,因为我的整个项目都在python 3.3中

以下是我编写的命令列表:

       >>> from boto.s3.key import Key
       >>> k = Key(bucket)
       >>> k.key='testfile'
       >>> k.set_contents_from_string('Hello this is my Boto S3 Test')
下面是执行最后一个命令时出现的错误列表:

       Traceback (most recent call last):
       File "<pyshell#8>", line 1, in <module>
       k.set_contents_from_string('Hello this is my Boto S3 Test')
       File "C:\Python33\lib\site-packages\boto\s3\key.py", line 1060, in              
       set_contents_from_string
       fp = compat.StringIO(s)
       TypeError: initial_value must be str or None, not bytes
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
k、 从字符串设置内容('您好,这是我的Boto S3测试')
文件“C:\Python33\lib\site packages\boto\s3\key.py”,第1060行,在
从\u字符串设置\u内容\u
fp=兼容字符串IO(s)
TypeError:初始值必须是str或None,而不是bytes
我遇到的其他问题(我想根是相同的)在以下链接中给出:


是的,简短的回答……你必须重构,这不一定是件坏事,因为这应该移植到3。尝试在源代码上运行2to3并使用Python3进行构建…解决构建过程中出现的任何问题…如果您在项目中使用了大量boto功能,那么要处理的问题将比上面的答案要少。

这个问题看起来像是StringIO vs BytesIO的问题。请在此处查看线索:


我遇到了完全相同的问题,于是写了一篇文章来解决它。这将允许您创建一个python2 virtualenv,并将boto包无缝地导入到python3包中


或者,您可以执行
awscli
(它使用python2,因为它基于boto)的系统安装,然后通过
子流程调用它

实际上,boto可以在Python 3中运行

设置:

  • AWS博客的这篇博文:
  • Travis CI测试:
  • 其分类器:

有一个分支,也许你应该试试。官方发布的版本只有是的,我想。现在Iv意识到,除了一些列表功能外,Python3.3中并没有使用多少Iv。我想我必须回到2.7:(希望在Python3.x中有稳定的boto。谢谢,但我回到了使用2.x,该项目现在已经成功结束,所以我想下次:)