diff --git a/.travis.yml b/.travis.yml
index 51e9f47..17fc71f 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -20,6 +20,7 @@
 # build Apache Thrift on Travis CI - https://travis-ci.org/
 
 sudo: required
+dist: trusty
 
 services:
   - docker
@@ -148,12 +149,18 @@
   include:
     # QA jobs for code analytics and metrics
     #
-    # static code analysis with cppcheck
+    # C/C++ static code analysis with cppcheck
     # add --error-exitcode=1 to --enable=all as soon as everything is fixed
-    - env: TEST_NAME="cppcheck"
+    #
+    # Python code style check with flake8
+    #
+    # search for TODO etc within source tree
+    # some statistics about the code base
+    # some info about the build machine
+    - env: TEST_NAME="cppcheck, flake8, TODO FIXME HACK, LoC and system info"
       install:
         - sudo apt-get update
-        - sudo apt-get install cppcheck
+        - sudo apt-get install -y cppcheck sloccount python-flake8
       script:
         # Compiler cppcheck (All)
         - cppcheck --force --quiet --inline-suppr --enable=all -j2 compiler/cpp/src
@@ -165,15 +172,16 @@
         - cppcheck --force --quiet --inline-suppr --error-exitcode=1 -j2 compiler/cpp/src
         - cppcheck --force --quiet --inline-suppr --error-exitcode=1 -j2 lib/cpp/src lib/cpp/test test/cpp tutorial/cpp
         - cppcheck --force --quiet --inline-suppr --error-exitcode=1 -j2 lib/c_glib/src lib/c_glib/test test/c_glib/src tutorial/c_glib
-
-    # search for TODO etc within source tree
-    # some statistics about the code base
-    # some info about the build machine
-    - env:    TEST_NAME="TODO FIXME HACK, LoC and system info"
-      install:
-        - sudo apt-get update
-        - sudo apt-get install sloccount
-      script:
+        # Python code style
+        - flake8 --ignore=E501 lib/py
+        - flake8 tutorial/py
+        - flake8 --ignore=E501 test/py
+        - flake8 test/py.twisted
+        - flake8 test/py.tornado
+        - flake8 --ignore=E501 test/test.py
+        - flake8 --ignore=E501 test/crossrunner
+        - flake8 test/features
+        # TODO etc
         - grep -r TODO *
         - grep -r FIXME *
         - grep -r HACK *
diff --git a/compiler/cpp/src/main.cc b/compiler/cpp/src/main.cc
index 7bd716f..89dd9f9 100644
--- a/compiler/cpp/src/main.cc
+++ b/compiler/cpp/src/main.cc
@@ -356,6 +356,7 @@
   if (filename[0] == '/') {
     // Realpath!
     char rp[THRIFT_PATH_MAX];
+    // cppcheck-suppress uninitvar
     if (saferealpath(filename.c_str(), rp) == NULL) {
       pwarning(0, "Cannot open include file %s\n", filename.c_str());
       return std::string();
@@ -378,6 +379,7 @@
 
       // Realpath!
       char rp[THRIFT_PATH_MAX];
+      // cppcheck-suppress uninitvar
       if (saferealpath(sfilename.c_str(), rp) == NULL) {
         continue;
       }
@@ -1163,6 +1165,7 @@
         }
         char old_thrift_file_rp[THRIFT_PATH_MAX];
 
+        // cppcheck-suppress uninitvar
         if (saferealpath(arg, old_thrift_file_rp) == NULL) {
           failure("Could not open input file with realpath: %s", arg);
         }
@@ -1231,6 +1234,7 @@
       fprintf(stderr, "Missing file name of new thrift file for audit\n");
       usage();
     }
+    // cppcheck-suppress uninitvar
     if (saferealpath(argv[i], new_thrift_file_rp) == NULL) {
       failure("Could not open input file with realpath: %s", argv[i]);
     }
@@ -1256,6 +1260,7 @@
       fprintf(stderr, "Missing file name\n");
       usage();
     }
+    // cppcheck-suppress uninitvar
     if (saferealpath(argv[i], rp) == NULL) {
       failure("Could not open input file with realpath: %s", argv[i]);
     }
diff --git a/lib/py/CMakeLists.txt b/lib/py/CMakeLists.txt
old mode 100755
new mode 100644
diff --git a/lib/py/Makefile.am b/lib/py/Makefile.am
old mode 100755
new mode 100644
diff --git a/lib/py/setup.cfg b/lib/py/setup.cfg
index c6dab40..c9ed0ae 100644
--- a/lib/py/setup.cfg
+++ b/lib/py/setup.cfg
@@ -2,3 +2,5 @@
 optimize = 1
 [metadata]
 description-file = README.md
+[flake8]
+max-line-length = 100
diff --git a/lib/py/src/compat.py b/lib/py/src/compat.py
index 787149a..41bcf35 100644
--- a/lib/py/src/compat.py
+++ b/lib/py/src/compat.py
@@ -31,7 +31,7 @@
 
 else:
 
-    from io import BytesIO as BufferIO
+    from io import BytesIO as BufferIO  # noqa
 
     def binary_to_str(bin_val):
         return bin_val.decode('utf8')
diff --git a/lib/py/test/thrift_json.py b/lib/py/test/thrift_json.py
index 5ba7dd5..fc1e79c 100644
--- a/lib/py/test/thrift_json.py
+++ b/lib/py/test/thrift_json.py
@@ -20,7 +20,7 @@
 import sys
 import unittest
 
-import _import_local_thrift
+import _import_local_thrift  # noqa
 from thrift.protocol.TJSONProtocol import TJSONProtocol
 from thrift.transport import TTransport
 
diff --git a/test/crossrunner/__init__.py b/test/crossrunner/__init__.py
index 49025ed..9d0b83a 100644
--- a/test/crossrunner/__init__.py
+++ b/test/crossrunner/__init__.py
@@ -17,7 +17,7 @@
 # under the License.
 #
 
-from .test import test_name
-from .collect import collect_cross_tests, collect_feature_tests
-from .run import TestDispatcher
-from .report import generate_known_failures, load_known_failures
+from .test import test_name  # noqa
+from .collect import collect_cross_tests, collect_feature_tests  # noqa
+from .run import TestDispatcher  # noqa
+from .report import generate_known_failures, load_known_failures  # noqa
diff --git a/test/crossrunner/run.py b/test/crossrunner/run.py
index 3f9aaa4..f522bb1 100644
--- a/test/crossrunner/run.py
+++ b/test/crossrunner/run.py
@@ -37,6 +37,10 @@
 RESULT_TIMEOUT = 128
 RESULT_ERROR = 64
 
+# globals
+ports = None
+stop = None
+
 
 class ExecutionContext(object):
     def __init__(self, cmd, cwd, env, report):
diff --git a/test/crossrunner/setup.cfg b/test/crossrunner/setup.cfg
new file mode 100644
index 0000000..7da1f96
--- /dev/null
+++ b/test/crossrunner/setup.cfg
@@ -0,0 +1,2 @@
+[flake8]
+max-line-length = 100
diff --git a/test/features/container_limit.py b/test/features/container_limit.py
index beed0c5..a16e364 100644
--- a/test/features/container_limit.py
+++ b/test/features/container_limit.py
@@ -4,7 +4,7 @@
 import sys
 
 from util import add_common_args, init_protocol
-from local_thrift import thrift
+from local_thrift import thrift  # noqa
 from thrift.Thrift import TMessageType, TType
 
 
diff --git a/test/features/setup.cfg b/test/features/setup.cfg
new file mode 100644
index 0000000..7da1f96
--- /dev/null
+++ b/test/features/setup.cfg
@@ -0,0 +1,2 @@
+[flake8]
+max-line-length = 100
diff --git a/test/features/string_limit.py b/test/features/string_limit.py
index 3c68b3e..695d965 100644
--- a/test/features/string_limit.py
+++ b/test/features/string_limit.py
@@ -4,7 +4,7 @@
 import sys
 
 from util import add_common_args, init_protocol
-from local_thrift import thrift
+from local_thrift import thrift  # noqa
 from thrift.Thrift import TMessageType, TType
 
 
diff --git a/test/features/theader_binary.py b/test/features/theader_binary.py
index 02e010b..451399a 100644
--- a/test/features/theader_binary.py
+++ b/test/features/theader_binary.py
@@ -5,7 +5,7 @@
 import sys
 
 from util import add_common_args
-from local_thrift import thrift
+from local_thrift import thrift  # noqa
 from thrift.Thrift import TMessageType, TType
 from thrift.transport.TSocket import TSocket
 from thrift.transport.TTransport import TBufferedTransport, TFramedTransport
diff --git a/test/features/util.py b/test/features/util.py
index e4997d0..3abbbbd 100644
--- a/test/features/util.py
+++ b/test/features/util.py
@@ -1,7 +1,7 @@
 import argparse
 import socket
 
-from local_thrift import thrift
+from local_thrift import thrift  # noqa
 from thrift.transport.TSocket import TSocket
 from thrift.transport.TTransport import TBufferedTransport, TFramedTransport
 from thrift.transport.THttpClient import THttpClient
diff --git a/test/py.tornado/setup.cfg b/test/py.tornado/setup.cfg
new file mode 100644
index 0000000..ae587c4
--- /dev/null
+++ b/test/py.tornado/setup.cfg
@@ -0,0 +1,3 @@
+[flake8]
+ignore = E402
+max-line-length = 100
diff --git a/test/py.tornado/test_suite.py b/test/py.tornado/test_suite.py
index b9ce781..32d1c2e 100755
--- a/test/py.tornado/test_suite.py
+++ b/test/py.tornado/test_suite.py
@@ -44,7 +44,7 @@
 from thrift.transport.TTransport import TTransportException
 
 from ThriftTest import ThriftTest
-from ThriftTest.ttypes import *
+from ThriftTest.ttypes import Xception, Xtruct
 
 
 class TestHandler(object):
diff --git a/test/py.twisted/setup.cfg b/test/py.twisted/setup.cfg
new file mode 100644
index 0000000..ae587c4
--- /dev/null
+++ b/test/py.twisted/setup.cfg
@@ -0,0 +1,3 @@
+[flake8]
+ignore = E402
+max-line-length = 100
diff --git a/test/py.twisted/test_suite.py b/test/py.twisted/test_suite.py
index 3a59bb1..43149a4 100755
--- a/test/py.twisted/test_suite.py
+++ b/test/py.twisted/test_suite.py
@@ -113,9 +113,8 @@
         self.processor = ThriftTest.Processor(self.handler)
         self.pfactory = TBinaryProtocol.TBinaryProtocolFactory()
 
-        self.server = reactor.listenTCP(0,
-                                        TTwisted.ThriftServerFactory(self.processor,
-                                                                     self.pfactory), interface="127.0.0.1")
+        self.server = reactor.listenTCP(
+            0, TTwisted.ThriftServerFactory(self.processor, self.pfactory), interface="127.0.0.1")
 
         self.portNo = self.server.getHost().port
 
diff --git a/test/py/SerializationTest.py b/test/py/SerializationTest.py
index f4f3a4f..efe3c6d 100755
--- a/test/py/SerializationTest.py
+++ b/test/py/SerializationTest.py
@@ -80,7 +80,7 @@
             vertwo2000=VersioningTestV2(newstruct=Bonk(message='World!', type=314)),
             a_set2500=set(['lazy', 'brown', 'cow']),
             vertwo3000=VersioningTestV2(newset=set([2, 3, 5, 7, 11])),
-            big_numbers=[2**8, 2**16, 2**31 - 1, -(2**31 - 1)]
+            big_numbers=[2 ** 8, 2 ** 16, 2 ** 31 - 1, -(2 ** 31 - 1)]
         )
 
         self.compact_struct = CompactProtoTestStruct(
@@ -160,10 +160,9 @@
             # note, the sets below are sets of chars, since the strings are iterated
             map_int_strset={10: set('abc'), 20: set('def'), 30: set('GHI')},
             map_int_strset_list=[
-            {10: set('abc'), 20: set('def'), 30: set('GHI')},
-            {100: set('lmn'), 200: set('opq'), 300: set('RST')},
-            {1000: set('uvw'), 2000: set('wxy'), 3000: set('XYZ')}
-        ]
+                {10: set('abc'), 20: set('def'), 30: set('GHI')},
+                {100: set('lmn'), 200: set('opq'), 300: set('RST')},
+                {1000: set('uvw'), 2000: set('wxy'), 3000: set('XYZ')}]
         )
 
         self.nested_lists_bonk = NestedListsBonk(
diff --git a/test/py/TestClient.py b/test/py/TestClient.py
index 5de9fa3..18ef66b 100755
--- a/test/py/TestClient.py
+++ b/test/py/TestClient.py
@@ -19,7 +19,6 @@
 # under the License.
 #
 
-import glob
 import os
 import sys
 import time
diff --git a/test/py/TestSyntax.py b/test/py/TestSyntax.py
index c83f40e..dbe7975 100755
--- a/test/py/TestSyntax.py
+++ b/test/py/TestSyntax.py
@@ -20,5 +20,5 @@
 #
 
 # Just import these generated files to make sure they are syntactically valid
-from DebugProtoTest import EmptyService
-from DebugProtoTest import Inherited
+from DebugProtoTest import EmptyService  # noqa
+from DebugProtoTest import Inherited  # noqa
diff --git a/test/py/setup.cfg b/test/py/setup.cfg
new file mode 100644
index 0000000..7da1f96
--- /dev/null
+++ b/test/py/setup.cfg
@@ -0,0 +1,2 @@
+[flake8]
+max-line-length = 100
diff --git a/tutorial/py/PythonClient.py b/tutorial/py/PythonClient.py
index 8000483..c659716 100755
--- a/tutorial/py/PythonClient.py
+++ b/tutorial/py/PythonClient.py
@@ -52,8 +52,8 @@
     client.ping()
     print('ping()')
 
-    sum = client.add(1, 1)
-    print(('1+1=%d' % (sum)))
+    sum_ = client.add(1, 1)
+    print('1+1=%d' % sum_)
 
     work = Work()
 
@@ -66,17 +66,17 @@
         print('Whoa? You know how to divide by zero?')
         print('FYI the answer is %d' % quotient)
     except InvalidOperation as e:
-        print(('InvalidOperation: %r' % e))
+        print('InvalidOperation: %r' % e)
 
     work.op = Operation.SUBTRACT
     work.num1 = 15
     work.num2 = 10
 
     diff = client.calculate(1, work)
-    print(('15-10=%d' % (diff)))
+    print('15-10=%d' % diff)
 
     log = client.getStruct(1)
-    print(('Check log: %s' % (log.value)))
+    print('Check log: %s' % log.value)
 
     # Close!
     transport.close()
@@ -85,4 +85,4 @@
     try:
         main()
     except Thrift.TException as tx:
-        print(('%s' % (tx.message)))
+        print('%s' % tx.message)
diff --git a/tutorial/py/PythonServer.py b/tutorial/py/PythonServer.py
index a02a525..eb132a1 100755
--- a/tutorial/py/PythonServer.py
+++ b/tutorial/py/PythonServer.py
@@ -92,8 +92,10 @@
     server = TServer.TSimpleServer(processor, transport, tfactory, pfactory)
 
     # You could do one of these for a multithreaded server
-    # server = TServer.TThreadedServer(processor, transport, tfactory, pfactory)
-    # server = TServer.TThreadPoolServer(processor, transport, tfactory, pfactory)
+    # server = TServer.TThreadedServer(
+    #     processor, transport, tfactory, pfactory)
+    # server = TServer.TThreadPoolServer(
+    #     processor, transport, tfactory, pfactory)
 
     print('Starting the server...')
     server.serve()
diff --git a/tutorial/py/setup.cfg b/tutorial/py/setup.cfg
new file mode 100644
index 0000000..2a7120a
--- /dev/null
+++ b/tutorial/py/setup.cfg
@@ -0,0 +1,2 @@
+[flake8]
+ignore = E402
