为什么(python)gspread在我的Mac上运行良好但从我的CentOS主机无声地失败

时间:2014-05-22 00:41:30

标签: python http urllib2 gspread

我可以使用gspread package在Mac上的终端中运行的Python脚本中更新Google电子表格。

gc = gspread.login('username@domain.com','password')
gs = gc.open("Test Google Spreadsheet")
print gs.worksheets()
sht = gs.worksheet("Test Worksheet")
sht.update_cell(1, 1, "Test")

当我从云中的CentOS 6主机运行相同的脚本时,我能够通过print gs.worksheets(),这意味着身份验证不是问题,但我崩溃了更新命令:

  File "/mydir/myscript.py", line 30, in myfunc
    sht.update_cell(1, 1, "Test")
  File "my_ve_dir/lib/python2.7/site-packages/gspread/models.py", line 423, in update_cell
    self.client.put_feed(uri, ElementTree.tostring(feed))
  File "my_ve_dir/lib/python2.7/site-packages/gspread/client.py", line 250, in put_feed
    raise ex
urllib2.HTTPError: HTTP Error 400: Bad Request

当我使用该方法批量更新单元格时,它在mac上按预期工作,但在CentOS主机上无声地失败(不会引发任何异常)。

sht.update_cells(cell_list)

所以我想知道什么是错的。我向其他端点发出成功的API请求(包括GET和POST),所以我对这里可能发生的事情感到困惑。任何想法都会非常感激。

1 个答案:

答案 0 :(得分:0)

从评论中重新发布我的答案 - 检查以确保两个主机系统都具有相同版本的python和gspread。

此外,我通常尝试在不同的系统上使用相同的包部署方法来确保设置依赖关系 - 如果它支持库,则pip很棒。