Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

TypeError on login: cannot make memory view #548

Closed
tobiasvl opened this issue Nov 17, 2015 · 4 comments · Fixed by #625
Closed

TypeError on login: cannot make memory view #548

tobiasvl opened this issue Nov 17, 2015 · 4 comments · Fixed by #625

Comments

@tobiasvl
Copy link
Contributor

I can no longer login using PRAW 3.3.0.

Using username/password:

Traceback (most recent call last):
  File "countdown.py", line 25, in update_countdown
    reddit.login(username, password)
  File "<decorator-gen-49>", line 2, in login
  File "/usr/lib/python2.7/site-packages/praw/decorators.py", line 75, in wrap
    return function(*args, **kwargs)
  File "/usr/lib/python2.7/site-packages/praw/__init__.py", line 1418, in login
    self.request_json(self.config['login'], data=data)
  File "<decorator-gen-8>", line 2, in request_json
  File "/usr/lib/python2.7/site-packages/praw/decorators.py", line 113, in raise_api_exceptions
    return_value = function(*args, **kwargs)
  File "/usr/lib/python2.7/site-packages/praw/__init__.py", line 612, in request_json
    retry_on_error=retry_on_error)

Using OAuth:

Traceback (most recent call last):
  File "countdown.py", line 25, in update_countdown
    reddit.refresh_access_information(access_info)
  File "/usr/lib/python2.7/site-packages/praw/__init__.py", line 1311, in get_access_information
    retval = super(AuthenticatedReddit, self).get_access_information(code)
  File "<decorator-gen-9>", line 2, in get_access_information
  File "/usr/lib/python2.7/site-packages/praw/decorators.py", line 285, in require_oauth
    return function(*args, **kwargs)
  File "/usr/lib/python2.7/site-packages/praw/__init__.py", line 675, in get_access_information
    retval = self._handle_oauth_request(data)
  File "/usr/lib/python2.7/site-packages/praw/__init__.py", line 650, in _handle_oauth_request
    response = self._request(url, auth=auth, data=data, raw_response=True)

The rest of the traceback is common to both methods:

  File "/usr/lib/python2.7/site-packages/praw/__init__.py", line 444, in _request
    response = handle_redirect()
  File "/usr/lib/python2.7/site-packages/praw/__init__.py", line 425, in handle_redirect
    verify=self.http.validate_certs, **kwargs)
  File "/usr/lib/python2.7/site-packages/praw/handlers.py", line 136, in wrapped
    return function(cls, **kwargs)
  File "/usr/lib/python2.7/site-packages/praw/handlers.py", line 57, in wrapped
    return function(cls, **kwargs)
  File "/usr/lib/python2.7/site-packages/praw/handlers.py", line 103, in request
    allow_redirects=False, verify=verify)
  File "/usr/lib/python2.7/site-packages/requests/sessions.py", line 576, in send
    r = adapter.send(request, **kwargs)
  File "/usr/lib/python2.7/site-packages/requests/adapters.py", line 370, in send
    timeout=timeout
  File "/usr/lib/python2.7/site-packages/requests/packages/urllib3/connectionpool.py", line 559, in urlopen
    body=body, headers=headers)
  File "/usr/lib/python2.7/site-packages/requests/packages/urllib3/connectionpool.py", line 353, in _make_request
    conn.request(method, url, **httplib_request_kw)
  File "/usr/lib64/python2.7/httplib.py", line 1053, in request
    self._send_request(method, url, body, headers)
  File "/usr/lib64/python2.7/httplib.py", line 1093, in _send_request
    self.endheaders(body)
  File "/usr/lib64/python2.7/httplib.py", line 1049, in endheaders
    self._send_output(message_body)
  File "/usr/lib64/python2.7/httplib.py", line 893, in _send_output
    self.send(msg)
  File "/usr/lib64/python2.7/httplib.py", line 869, in send
    self.sock.sendall(data)
  File "/usr/lib/python2.7/site-packages/requests/packages/urllib3/contrib/pyopenssl.py", line 216, in sendall
    data = memoryview(data)
TypeError: cannot make memory view because object does not have the buffer interface
@tobiasvl tobiasvl changed the title TypeError on login TypeError on login: cannot make memory view Nov 17, 2015
@tobiasvl
Copy link
Contributor Author

After some digging it seems to me that this is related to kennethreitz/requests#2818 (and urllib3/urllib3#717).

@13steinj
Copy link
Contributor

Can you use pip to see what version of requests you are using?

@bboe
Copy link
Member

bboe commented Nov 22, 2015

Sounds like we either need to restrict the version of requests that can be used (set a smaller maximum number), or fix the unicode headers that PRAW sends. The former approach is much simpler.

@tobiasvl
Copy link
Contributor Author

I used 2.8.0, but it works when I downgraded requests to 2.7.0.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants