copy() 仍然抛出参数 folder_id 的错误
copy() still throwing errors with parameter folder_id
gspread docs specify copy()
方法最多需要四个参数,其中一个是可选参数 folder_id
,新复制的电子表格将创建到其中:
但是,在尝试指定 folder_id
client.copy(file_id='1iKMBJ56TKxafMGhSbh66mA9GdhCaOONaLI-g3-xo6_Y', title='Test_Copy', copy_permissions='True', folder_id="1cWSInUwf39NOSTodCTqesc0WeTnp_VKI")
我收到回溯错误,指出 folder_id
不是有效参数:
Traceback (most recent call last):
File "/Users/user/Desktop/gspread_copyTO.py", line 111, in <module>
client.copy(file_id='1iKMBJ56TKxafMGhSbh66mA9GdhCaOONaLI-g3-xo6_Y', title='Test_Copy', copy_permissions='True', folder_id="1cWSInUwf39NOSTodCTqesc0WeTnp_VKI")
TypeError: copy() got an unexpected keyword argument 'folder_id'
folder_id
被认为是 #851 (which supposedly fixed #805 中 copy()
的缺失参数,
#678) and folder_id
is clearly listed as a parameter in the docs,我是不是遗漏了什么,还是这仍然是个问题?
其他一些注意事项:如果没有将 folder_id
指定为参数,copy()
实际上可以工作,但我的情况需要能够直接复制到特定位置。
为了省略“folder_id=”(以防某些 back-end 拼写错误是问题的根源),我调用了没有参数标题的函数
client.copy('1iKMBJ56TKxafMGhSbh66mA9GdhCaOONaLI-g3-xo6_Y', 'Test_Copy', 'True', '1cWSInUwf39NOSTodCTqesc0WeTnp_VKI')
当我明明只提供了 4 个参数时却得到了指定 5 个参数的奇怪错误:
TypeError: copy() takes from 2 to 4 positional arguments but 5 were given
最后,copy_permissions
接受布尔 True
和字符串 'True'
作为有效参数(不确定这是正常行为还是预期行为)。
感谢您的帮助。
对于其他处理这个问题的人来说,我似乎已经掉进了裂缝。
我通过尝试强制升级
确认我拥有最新版本的 gspread
pip install --upgrade gspread
但 pip
跳过升级包的所有项目,因为包名义上是最新的。
我通过打印
验证了版本实际上是正确的(不仅仅是 pip
拒绝升级)
print(gspread.__version__)
>>>> 3.7.0
如果我只是接受 Python 的话,我就会被卡住。相反,我决定深入研究 gspread
代码本身,结果发现包含在最新包下载中的 client.py
文件——包含 copy()
的定义——不是最新的代码,在 project's GitHub page.
上找到
我想我很幸运,我一直很固执,没有接受 Python 拥有最新最好的说法,但它提出了一个更大的问题,即如何处理这种事情——如何是否确保(gspread
或其他)他们拥有正确更新的代码?
这是pip
(或更大的Python
)问题吗?是 gspread's
疏忽吗?是否有其他地方可能发生错误连接?我如何验证我的 gspread
包裹中还有什么东西丢失或没有丢失?
gspread docs specify copy()
方法最多需要四个参数,其中一个是可选参数 folder_id
,新复制的电子表格将创建到其中:
但是,在尝试指定 folder_id
client.copy(file_id='1iKMBJ56TKxafMGhSbh66mA9GdhCaOONaLI-g3-xo6_Y', title='Test_Copy', copy_permissions='True', folder_id="1cWSInUwf39NOSTodCTqesc0WeTnp_VKI")
我收到回溯错误,指出 folder_id
不是有效参数:
Traceback (most recent call last):
File "/Users/user/Desktop/gspread_copyTO.py", line 111, in <module>
client.copy(file_id='1iKMBJ56TKxafMGhSbh66mA9GdhCaOONaLI-g3-xo6_Y', title='Test_Copy', copy_permissions='True', folder_id="1cWSInUwf39NOSTodCTqesc0WeTnp_VKI")
TypeError: copy() got an unexpected keyword argument 'folder_id'
folder_id
被认为是 #851 (which supposedly fixed #805 中 copy()
的缺失参数,
#678) and folder_id
is clearly listed as a parameter in the docs,我是不是遗漏了什么,还是这仍然是个问题?
其他一些注意事项:如果没有将 folder_id
指定为参数,copy()
实际上可以工作,但我的情况需要能够直接复制到特定位置。
为了省略“folder_id=”(以防某些 back-end 拼写错误是问题的根源),我调用了没有参数标题的函数
client.copy('1iKMBJ56TKxafMGhSbh66mA9GdhCaOONaLI-g3-xo6_Y', 'Test_Copy', 'True', '1cWSInUwf39NOSTodCTqesc0WeTnp_VKI')
当我明明只提供了 4 个参数时却得到了指定 5 个参数的奇怪错误:
TypeError: copy() takes from 2 to 4 positional arguments but 5 were given
最后,copy_permissions
接受布尔 True
和字符串 'True'
作为有效参数(不确定这是正常行为还是预期行为)。
感谢您的帮助。
对于其他处理这个问题的人来说,我似乎已经掉进了裂缝。
我通过尝试强制升级
确认我拥有最新版本的gspread
pip install --upgrade gspread
但 pip
跳过升级包的所有项目,因为包名义上是最新的。
我通过打印
验证了版本实际上是正确的(不仅仅是pip
拒绝升级)
print(gspread.__version__)
>>>> 3.7.0
如果我只是接受 Python 的话,我就会被卡住。相反,我决定深入研究 gspread
代码本身,结果发现包含在最新包下载中的 client.py
文件——包含 copy()
的定义——不是最新的代码,在 project's GitHub page.
我想我很幸运,我一直很固执,没有接受 Python 拥有最新最好的说法,但它提出了一个更大的问题,即如何处理这种事情——如何是否确保(gspread
或其他)他们拥有正确更新的代码?
这是pip
(或更大的Python
)问题吗?是 gspread's
疏忽吗?是否有其他地方可能发生错误连接?我如何验证我的 gspread
包裹中还有什么东西丢失或没有丢失?