diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 63ad16d..5fadc27 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -483,7 +483,7 @@
 
       - name: Python setup
         run: |
-          python -m pip install --upgrade pip setuptools wheel flake8 six tornado twisted zope.interface
+          python -m pip install --upgrade pip setuptools wheel flake8 tornado twisted zope.interface
           python --version
           pip --version
 
diff --git a/build/appveyor/MSVC-appveyor-full.bat b/build/appveyor/MSVC-appveyor-full.bat
index d0f0347..dcdf843 100644
--- a/build/appveyor/MSVC-appveyor-full.bat
+++ b/build/appveyor/MSVC-appveyor-full.bat
@@ -131,7 +131,6 @@
 pip.exe ^
     install backports.ssl_match_hostname ^
             ipaddress ^
-            six ^
             tornado ^
             twisted || EXIT /B
 
diff --git a/build/docker/ubuntu-focal/Dockerfile b/build/docker/ubuntu-focal/Dockerfile
index a29ec69..84bbee1 100644
--- a/build/docker/ubuntu-focal/Dockerfile
+++ b/build/docker/ubuntu-focal/Dockerfile
@@ -260,7 +260,6 @@
       python3-all-dev \
       python3-pip \
       python3-setuptools \
-      python3-six \
       python3-tornado \
       python3-twisted \
       python3-wheel \
diff --git a/build/docker/ubuntu-jammy/Dockerfile b/build/docker/ubuntu-jammy/Dockerfile
index 5fa6e6f..0505bf5 100644
--- a/build/docker/ubuntu-jammy/Dockerfile
+++ b/build/docker/ubuntu-jammy/Dockerfile
@@ -259,7 +259,6 @@
   python3-all-dev \
   python3-pip \
   python3-setuptools \
-  python3-six \
   python3-tornado \
   python3-twisted \
   python3-wheel \
diff --git a/contrib/Vagrantfile b/contrib/Vagrantfile
index d4a7b82..a5371dd 100644
--- a/contrib/Vagrantfile
+++ b/contrib/Vagrantfile
@@ -46,7 +46,7 @@
 sudo apt-get install -qq ant openjdk-8-jdk maven
 
 # Python dependencies
-sudo apt-get install -qq python-all python-all-dev python-all-dbg python-setuptools python-support python-six python3-six
+sudo apt-get install -qq python-all python-all-dev python-all-dbg python-setuptools python-support
 
 # Ruby dependencies
 sudo apt-get install -qq ruby ruby-dev
diff --git a/debian/control b/debian/control
index 1b41991..06c0d48 100644
--- a/debian/control
+++ b/debian/control
@@ -32,7 +32,7 @@
 Package: python-thrift
 Architecture: any
 Section: python
-Depends: ${python:Depends}, ${shlibs:Depends}, ${misc:Depends}, python-six
+Depends: ${python:Depends}, ${shlibs:Depends}, ${misc:Depends}
 Recommends: python-twisted-web, python-backports.ssl-match-hostname, python-ipaddress
 Provides: ${python:Provides}
 Description: Python bindings for Thrift (Python 2)
@@ -65,7 +65,7 @@
 Package: python3-thrift
 Architecture: any
 Section: python
-Depends: ${python3:Depends}, ${shlibs:Depends}, ${misc:Depends}, python3-six
+Depends: ${python3:Depends}, ${shlibs:Depends}, ${misc:Depends}
 Recommends: python3-twisted-web
 Provides: ${python:Provides}
 Description: Python bindings for Thrift (Python 3)
diff --git a/lib/nodejs/examples/httpServer.py b/lib/nodejs/examples/httpServer.py
index 76e9f4a..bf3ef14 100644
--- a/lib/nodejs/examples/httpServer.py
+++ b/lib/nodejs/examples/httpServer.py
@@ -16,5 +16,5 @@
 protoFactory = TJSONProtocol.TJSONProtocolFactory()
 port = 9090
 server = THttpServer.THttpServer(processor, ("localhost", port), protoFactory)
-print "Python server running on port " + str(port)
+print("Python server running on port " + str(port))
 server.serve()
diff --git a/lib/py/setup.py b/lib/py/setup.py
index 3e10f01..066483e 100644
--- a/lib/py/setup.py
+++ b/lib/py/setup.py
@@ -113,7 +113,6 @@
           author_email='dev@thrift.apache.org',
           url='http://thrift.apache.org',
           license='Apache License 2.0',
-          install_requires=['six>=1.7.2'],
           extras_require={
               'ssl': ssl_deps,
               'tornado': tornado_deps,
@@ -132,7 +131,6 @@
               'Environment :: Console',
               'Intended Audience :: Developers',
               'Programming Language :: Python',
-              'Programming Language :: Python :: 2',
               'Programming Language :: Python :: 3',
               'Topic :: Software Development :: Libraries',
               'Topic :: System :: Networking'
diff --git a/lib/py/src/TSCons.py b/lib/py/src/TSCons.py
index bc67d70..633f67a 100644
--- a/lib/py/src/TSCons.py
+++ b/lib/py/src/TSCons.py
@@ -19,7 +19,6 @@
 
 from os import path
 from SCons.Builder import Builder
-from six.moves import map
 
 
 def scons_env(env, add=''):
diff --git a/lib/py/src/protocol/TProtocol.py b/lib/py/src/protocol/TProtocol.py
index 339a283..bac54ae 100644
--- a/lib/py/src/protocol/TProtocol.py
+++ b/lib/py/src/protocol/TProtocol.py
@@ -21,10 +21,8 @@
 from thrift.transport.TTransport import TTransportException
 from ..compat import binary_to_str, str_to_binary
 
-import six
 import sys
 from itertools import islice
-from six.moves import zip
 
 
 class TProtocolException(TException):
@@ -373,8 +371,8 @@
     def writeContainerMap(self, val, spec):
         ktype, kspec, vtype, vspec, _ = spec
         self.writeMapBegin(ktype, vtype, len(val))
-        for _ in zip(self._write_by_ttype(ktype, six.iterkeys(val), spec, kspec),
-                     self._write_by_ttype(vtype, six.itervalues(val), spec, vspec)):
+        for _ in zip(self._write_by_ttype(ktype, val.keys(), spec, kspec),
+                     self._write_by_ttype(vtype, val.values(), spec, vspec)):
             pass
         self.writeMapEnd()
 
diff --git a/lib/py/src/server/THttpServer.py b/lib/py/src/server/THttpServer.py
index 47e817d..21f2c86 100644
--- a/lib/py/src/server/THttpServer.py
+++ b/lib/py/src/server/THttpServer.py
@@ -19,7 +19,7 @@
 
 import ssl
 
-from six.moves import BaseHTTPServer
+import http.server as BaseHTTPServer
 
 from thrift.Thrift import TMessageType
 from thrift.server import TServer
diff --git a/lib/py/src/server/TNonblockingServer.py b/lib/py/src/server/TNonblockingServer.py
index 7694760..a7a40ca 100644
--- a/lib/py/src/server/TNonblockingServer.py
+++ b/lib/py/src/server/TNonblockingServer.py
@@ -32,7 +32,7 @@
 import threading
 
 from collections import deque
-from six.moves import queue
+import queue
 
 from thrift.transport import TTransport
 from thrift.protocol.TBinaryProtocol import TBinaryProtocolFactory
diff --git a/lib/py/src/server/TServer.py b/lib/py/src/server/TServer.py
index 8b2f938..81144f1 100644
--- a/lib/py/src/server/TServer.py
+++ b/lib/py/src/server/TServer.py
@@ -17,7 +17,7 @@
 # under the License.
 #
 
-from six.moves import queue
+import queue
 import logging
 import os
 import threading
diff --git a/lib/py/src/transport/THttpClient.py b/lib/py/src/transport/THttpClient.py
index 82ca3d1..d545ce5 100644
--- a/lib/py/src/transport/THttpClient.py
+++ b/lib/py/src/transport/THttpClient.py
@@ -24,11 +24,11 @@
 import warnings
 import base64
 
-from six.moves import urllib
-from six.moves import http_client
+import urllib.parse
+import urllib.request
+import http.client
 
 from .TTransport import TTransportBase
-import six
 
 
 class THttpClient(TTransportBase):
@@ -60,9 +60,9 @@
             self.scheme = parsed.scheme
             assert self.scheme in ('http', 'https')
             if self.scheme == 'http':
-                self.port = parsed.port or http_client.HTTP_PORT
+                self.port = parsed.port or http.client.HTTP_PORT
             elif self.scheme == 'https':
-                self.port = parsed.port or http_client.HTTPS_PORT
+                self.port = parsed.port or http.client.HTTPS_PORT
                 self.certfile = cert_file
                 self.keyfile = key_file
                 self.context = ssl.create_default_context(cafile=cafile) if (cafile and not ssl_context) else ssl_context
@@ -107,10 +107,10 @@
 
     def open(self):
         if self.scheme == 'http':
-            self.__http = http_client.HTTPConnection(self.host, self.port,
+            self.__http = http.client.HTTPConnection(self.host, self.port,
                                                      timeout=self.__timeout)
         elif self.scheme == 'https':
-            self.__http = http_client.HTTPSConnection(self.host, self.port,
+            self.__http = http.client.HTTPSConnection(self.host, self.port,
                                                       key_file=self.keyfile,
                                                       cert_file=self.certfile,
                                                       timeout=self.__timeout,
@@ -173,7 +173,7 @@
             self.__http.putheader('User-Agent', user_agent)
 
         if self.__custom_headers:
-            for key, val in six.iteritems(self.__custom_headers):
+            for key, val in self.__custom_headers.items():
                 self.__http.putheader(key, val)
 
         # Saves the cookie sent by the server in the previous response.
