请求:模块在本地工作但在 pythonanywhere 上失败

Requests: Module works locally but failed on pythonanywhere

我正在尝试制作一个使用请求库从纽约时报获取数据的 Twitter 机器人 api。
代码中有一行

resp = requests.get(API_ENDPOINT, my_params)

现在,当我在本地 运行 时,它工作得很好。所以我把它上传到pythonanywhere。当我尝试 运行 时,我收到了这个错误:

resp = requests.get(API_ENDPOINT, my_params)
TypeError: get() takes exactly 1 argument (2 given)

这是怎么回事?我最近开始使用 requests 和 pythonanywhere。所以我真的不知道从哪里开始调试。

您在 PythonAnywhere 和本地安装了 不同的 requests 版本。


据我所知,安装在 PythonAnywhere 上的 requests 版本是 2.4.0。那时,你必须 specify params keyword argument explicitly:

requests.get(url, **kwargs)

你必须写:

resp = requests.get(API_ENDPOINT, params=my_params)

在最新版本中(目前2.10.0),您可以指定params as a positional argument:

requests.get(url, params=None, **kwargs)

resp = requests.get(API_ENDPOINT, my_params)

你可以这样做:

API_ENDPOINT = 'http://your_endpoint_url.com'

my_params = {'key1': 'value1', 'key2': 'value2'} 

r = requests.get(API_ENDPOINT, params=my_params) # notice params is named named