diff --git a/README.md b/README.md
index ab23767..9740a2b 100644
--- a/README.md
+++ b/README.md
@@ -41,8 +41,35 @@
     ./bin/accumulo-proxy -p conf/proxy.properties -c $ACCUMULO_HOME/conf/accumulo-client.properties
     ```
 
+# Build language specific bindings
+
+Bindings have been built in `src/main/` for Java, python, and ruby.
+
+Bindings for other languages can be built using the Thrift compiler. Follow the [Thrift tutorial]
+to install a Thrift compiler and use the following command to generate language bindings.
+
+```
+thrift -r --gen <language> <Thrift filename>
+```
+
+# Create an Accumulo client using Python
+
+Run the commands below to install the Python bindings and create an example client:
+
+```bash
+mkdir accumulo-client/
+cd accumulo-client/
+pipenv --python 2.7
+pipenv install -e /path/to/accumulo-proxy/src/main/python
+cp /path/to/accumulo-proxy/src/main/python/example.py .
+# Edit credentials if needed
+vim example.py
+pipenv run python2 example.py
+```
+
 [accumulo]: https://accumulo.apache.org
 [Thrift]: https://thrift.apache.org
+[Thrift tutorial]: https://thrift.apache.org/tutorial/
 [li]: https://img.shields.io/badge/license-ASL-blue.svg
 [ll]: https://www.apache.org/licenses/LICENSE-2.0
 [mi]: https://maven-badges.herokuapp.com/maven-central/org.apache.accumulo/accumulo-proxy/badge.svg
@@ -51,4 +78,3 @@
 [jl]: https://www.javadoc.io/doc/org.apache.accumulo/accumulo-proxy
 [ti]: https://travis-ci.org/apache/accumulo-proxy.svg?branch=master
 [tl]: https://travis-ci.org/apache/accumulo-proxy
-
diff --git a/src/main/python/.gitignore b/src/main/python/.gitignore
new file mode 100644
index 0000000..c45695d
--- /dev/null
+++ b/src/main/python/.gitignore
@@ -0,0 +1 @@
+AccumuloProxy.egg-info/
diff --git a/src/main/python/accumulo/.gitignore b/src/main/python/accumulo/.gitignore
new file mode 100644
index 0000000..c45695d
--- /dev/null
+++ b/src/main/python/accumulo/.gitignore
@@ -0,0 +1 @@
+AccumuloProxy.egg-info/
diff --git a/src/main/python/AccumuloProxy-remote b/src/main/python/accumulo/AccumuloProxy-remote
similarity index 100%
rename from src/main/python/AccumuloProxy-remote
rename to src/main/python/accumulo/AccumuloProxy-remote
diff --git a/src/main/python/AccumuloProxy.py b/src/main/python/accumulo/AccumuloProxy.py
similarity index 100%
rename from src/main/python/AccumuloProxy.py
rename to src/main/python/accumulo/AccumuloProxy.py
diff --git a/src/main/python/__init__.py b/src/main/python/accumulo/__init__.py
similarity index 100%
rename from src/main/python/__init__.py
rename to src/main/python/accumulo/__init__.py
diff --git a/src/main/python/constants.py b/src/main/python/accumulo/constants.py
similarity index 100%
rename from src/main/python/constants.py
rename to src/main/python/accumulo/constants.py
diff --git a/src/main/python/ttypes.py b/src/main/python/accumulo/ttypes.py
similarity index 100%
rename from src/main/python/ttypes.py
rename to src/main/python/accumulo/ttypes.py
diff --git a/src/main/python/example.py b/src/main/python/example.py
new file mode 100644
index 0000000..cf04c74
--- /dev/null
+++ b/src/main/python/example.py
@@ -0,0 +1,47 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+#! /usr/bin/env python
+
+import sys
+
+from thrift import Thrift
+from thrift.transport import TSocket
+from thrift.transport import TTransport
+from thrift.protocol import TCompactProtocol
+
+from accumulo import AccumuloProxy
+from accumulo.ttypes import *
+
+transport = TSocket.TSocket('localhost', 42424)
+transport = TTransport.TFramedTransport(transport)
+protocol = TCompactProtocol.TCompactProtocol(transport)
+client = AccumuloProxy.Client(protocol)
+transport.open()
+
+login = client.login('root', {'password':'secret'})
+
+print client.listTables(login)
+
+testtable = "pythontest"
+if not client.tableExists(login, testtable):
+    client.createTable(login, testtable, True, TimeType.MILLIS)
+
+row1 = {'a':[ColumnUpdate('a','a',value='value1'), ColumnUpdate('b','b',value='value2')]}
+client.updateAndFlush(login, testtable, row1)
+
+cookie = client.createScanner(login, testtable, None)
+for entry in client.nextK(cookie, 10).results:
+   print entry
diff --git a/src/main/python/setup.py b/src/main/python/setup.py
new file mode 100644
index 0000000..a348d99
--- /dev/null
+++ b/src/main/python/setup.py
@@ -0,0 +1,24 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+from distutils.core import setup
+
+setup(
+    name='AccumuloProxy',
+    version='2.0.0',
+    packages=['accumulo',],
+    license='Apache License, Version 2.0',
+    long_description=open('../../../README.md').read(),
+)
