Boto语法错误?

1 投票
1 回答
785 浏览
提问于 2025-04-18 12:59

我在导入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更新你的文件(或者自己修改一下)就可以了。

撰写回答