2016-12-25 14 views
0

Я пытаюсь написать redditbot; Я решил начать с простого, чтобы убедиться, что я делаю все правильно, и я получил RequestException.PRAW raise RequestException, когда я пытаюсь запустить простой бот

мой код (bot.py):

import praw 

for s in praw.Reddit('bot1').subreddit("learnpython").hot(limit=5): 
    print s.title 

мой praw.ini файл:

# The URL prefix for OAuth-related requests. 
oauth_url=https://oauth.reddit.com 

# The URL prefix for regular requests. 
reddit_url=https://www.reddit.com 

# The URL prefix for short URLs. 
short_url=https://redd.it 

[bot1] 
client_id=HIDDEN 
client_secret=HIDDEN 
password=HIDDEN 
username=HIDDEN 
user_agent=ILovePythonBot0.1 

(. Где HIDDEN заменяет фактический идентификатор, секретный, пароль и имя пользователя)

Мой Traceback:

Traceback (most recent call last): 
    File "bot.py", line 3, in <module> 
    for s in praw.Reddit('bot1').subreddit("learnpython").hot(limit=5): 
    File "/usr/local/lib/python2.7/dist-packages/praw/models/listing/generator.py", line 79, in next 
    return self.__next__() 
    File "/usr/local/lib/python2.7/dist-packages/praw/models/listing/generator.py", line 52, in __next__ 
    self._next_batch() 
    File "/usr/local/lib/python2.7/dist-packages/praw/models/listing/generator.py", line 62, in _next_batch 
    self._listing = self._reddit.get(self.url, params=self.params) 
    File "/usr/local/lib/python2.7/dist-packages/praw/reddit.py", line 322, in get 
    data = self.request('GET', path, params=params) 
    File "/usr/local/lib/python2.7/dist-packages/praw/reddit.py", line 406, in request 
    params=params) 
    File "/usr/local/lib/python2.7/dist-packages/prawcore/sessions.py", line 131, in request 
    params=params, url=url) 
    File "/usr/local/lib/python2.7/dist-packages/prawcore/sessions.py", line 70, in _request_with_retries 
    params=params) 
    File "/usr/local/lib/python2.7/dist-packages/prawcore/rate_limit.py", line 28, in call 
    response = request_function(*args, **kwargs) 
    File "/usr/local/lib/python2.7/dist-packages/prawcore/requestor.py", line 48, in request 
    raise RequestException(exc, args, kwargs) 
prawcore.exceptions.RequestException: error with request request() got an unexpected keyword argument 'json' 

Любая помощь будет оценена по достоинству. PS, я использую Python 2.7., На Ubuntu 14.04. Пожалуйста, спросите меня о любой другой информации, которая вам может понадобиться.

+0

Это довольно странно. Какая версия praw, prawcore и запросов у вас есть: замените PACKAGE на имя каждого, чтобы получить версию: 'python -c 'из PACKAGE import __version__; print (__ version __) «Моя догадка заключается в том, что у вас более старая версия запросов, которая не поддерживает этот параметр. Однако это не должно быть возможным, если вы используете pip для установки praw. Как вы установили praw? – bboe

+0

@bboe Я использую: praw 4.1.0 prawcore 0.5.0 запросы 2.2.1 Я установил praw с пипсом. – CoffeeTableEspresso

+0

Это действительно интересно, так как prawcore зависит от 'request> = 2.9.1', поэтому pip _shouldn't_ успешно установил PRAW с этой версией. Попробуйте 'pip install -U praw' и посмотрите, не изменит ли он версию запросов вообще. – bboe

ответ

0

Как я вижу это, похоже, у вас есть проблема с вашим запросом на Reddit API. Возможно, попробуйте изменить пользовательский агент в конфигурации вашего файла. Согласно PRAW basic configuration Options, пользователь-агент должен следовать формату <platform>:<app ID>:<version string> (by /u/<reddit username>). Попробуйте это посмотреть, что произойдет.

+1

Я пробовал это, это не имело никакого эффекта. Я получил ту же ошибку и другие. – CoffeeTableEspresso

+0

@CoffeeTableEspresso Параметр JSON не был введен в версиях запросов <2.4.2, а ваша версия запроса - 2.2.1. Попробуйте обновить его, используя pip 'pip install requests'. Если это не работает, у вас должна быть библиотека старых запросов, конфликтующая с более новой. – Bantu

+0

Я попробовал 'pip install requests', (а также исправление, предложенное выше @bboe), не обновил мою версию запросов. – CoffeeTableEspresso