Boto语法错误?
我在导入boto.dynamodb.table的时候遇到了语法错误。我不明白这和我正在做的事情有什么关系。我并没有实现或使用它,但在启动时却发现了语法错误。
我控制台里的错误信息是这样的:
File "api.py", line 10, in <module>
import dynamoAccess
File "/Users/tai/Documents/workspace/testSelenium/testS/dynamoAccess.py", line 6, in <module>
from boto.dynamodb2.table import Table
File "/Library/Python/2.7/site-packages/boto/dynamodb2/table.py", line 3, in <module>
from boto.dynamodb2.fields import (HashKey, RangeKey,
File "/Library/Python/2.7/site-packages/boto/dynamodb2/fields.py", line 1, in <module>
from boto.dynamodb2.types import STRING
File "/Library/Python/2.7/site-packages/boto/dynamodb2/types.py", line 4, in <module>
from boto.dynamodb.types import Dynamizer
File "/Library/Python/2.7/site-packages/boto/dynamodb/types.py", line 112
]
^
SyntaxError: invalid syntax
我认为这个错误和dynamoAccess的前几行代码(也就是dynamo表的导入)有关:
这是我的代码:
import cleaner
import datetime
import awsAccess
import boto
from boto import dynamodb2
from boto.dynamodb2.table import Table
#create a connection to amazon s3
#aws_access_key_id=getenv('AWS_ACCESS_KEY');
#aws_secret_access_key=getenv('AWS_SECRET_KEY');
#aws_dynamo_region=getenv('DYANAMO_REGION')
#for running in pydev
aws_access_key_id=awsAccess.aws_access_key_id
aws_secret_access_key=awsAccess.aws_secret_access_key
aws_dynamo_region=awsAccess.aws_dynamo_region
decompiled_dynamo_table="decompiled_swfs"
text_dynamo_table="decompiled_swf_text"
image_dynamo_table="images_decompiled"
_dynamo_table="decompiled_swf_text"
有没有人遇到过这个问题?我没有修改过boto文件。
编辑:重新安装了boto,但仍然出现错误:
名称:boto
版本:2.31.1
编辑2:问题解决了,见下面的回答。boto有个bug。
1 个回答
2
解决了 - 我把boto的dynamodb/types.py文件换成了github上的那个版本:https://github.com/boto/boto
有一个]符号放错地方了,需要修正。这个问题在github的版本里已经修好了,但显然还没有更新到pip上。
我觉得其他人也可能会遇到这个问题。如果你碰到类似的情况,只需要从github更新你的文件(或者自己修改一下)就可以了。