title: base64.encodestring failing in python 3
body: <p>The following piece of code runs successfully on a python 2 machine:</p>
  
  <pre><code>base64_str = base64.encodestring('%s:%s' % (username,password)).replace('\n', '')
  </code></pre>
  
  <p>I am trying to port it over to Python 3 but when I do so I encounter the following error:</p>
  
  <pre><code>&gt;&gt;&gt; a = base64.encodestring('{0}:{1}'.format(username,password)).replace('\n','')
  Traceback (most recent call last):
    File "/auto/pysw/cel55/python/3.4.1/lib/python3.4/base64.py", line 519, in _input_type_check
      m = memoryview(s)
  TypeError: memoryview: str object does not have the buffer interface
  
  The above exception was the direct cause of the following exception:
  
  Traceback (most recent call last):
    File "&lt;stdin&gt;", line 1, in &lt;module&gt;
    File "/auto/pysw/cel55/python/3.4.1/lib/python3.4/base64.py", line 548, in encodestring
      return encodebytes(s)
    File "/auto/pysw/cel55/python/3.4.1/lib/python3.4/base64.py", line 536, in encodebytes
      _input_type_check(s)
    File "/auto/pysw/cel55/python/3.4.1/lib/python3.4/base64.py", line 522, in _input_type_check
      raise TypeError(msg) from err
  TypeError: expected bytes-like object, not str
  </code></pre>
  
  <p>I tried searching examples for encodestring usage but not able to find a good document. Am I missing something obvious? I am running this on RHEL 2.6.18-371.11.1.el5</p>