diff --git a/api/field_handler.py b/api/field_handler.py
index e6c1418..a9caff1 100644
--- a/api/field_handler.py
+++ b/api/field_handler.py
@@ -21,7 +21,10 @@
 from chromite.lib import cros_logging as logging
 from chromite.lib import osutils
 
+# TODO(vapier): Re-enable check once we upgrade to pylint-1.8+.
+# pylint: disable=no-name-in-module
 from google.protobuf import message as protobuf_message
+# pylint: enable=no-name-in-module
 
 
 class Error(Exception):
diff --git a/api/router.py b/api/router.py
index 32f7b98..db0403a 100644
--- a/api/router.py
+++ b/api/router.py
@@ -14,8 +14,11 @@
 import importlib
 import os
 
+# TODO(vapier): Re-enable check once we upgrade to pylint-1.8+.
+# pylint: disable=no-name-in-module
 from google.protobuf import json_format
 from google.protobuf import symbol_database
+# pylint: enable=no-name-in-module
 
 from chromite.api import controller
 from chromite.api import field_handler
diff --git a/api/router_unittest.py b/api/router_unittest.py
index 742ed69..2375e73 100644
--- a/api/router_unittest.py
+++ b/api/router_unittest.py
@@ -9,7 +9,10 @@
 
 import os
 
+# TODO(vapier): Re-enable check once we upgrade to pylint-1.8+.
+# pylint: disable=no-name-in-module
 from google.protobuf import json_format
+# pylint: enable=no-name-in-module
 
 from chromite.api import api_config
 from chromite.api import router
diff --git a/api/validate.py b/api/validate.py
index f924d11..f3659b8 100644
--- a/api/validate.py
+++ b/api/validate.py
@@ -19,7 +19,10 @@
 from chromite.lib import cros_build_lib
 from chromite.lib import cros_logging as logging
 
+# TODO(vapier): Re-enable check once we upgrade to pylint-1.8+.
+# pylint: disable=no-name-in-module
 from google.protobuf import message as protobuf_message
+# pylint: enable=no-name-in-module
 
 
 def _value(field, message):
diff --git a/cbuildbot/commands.py b/cbuildbot/commands.py
index eeea3f6..7071fa7 100644
--- a/cbuildbot/commands.py
+++ b/cbuildbot/commands.py
@@ -52,7 +52,10 @@
 from chromite.scripts import pushimage
 from chromite.service import artifacts as artifacts_service
 
+# TODO(vapier): Re-enable check once we upgrade to pylint-1.8+.
+# pylint: disable=no-name-in-module
 from google.protobuf import json_format
+# pylint: enable=no-name-in-module
 
 
 _PACKAGE_FILE = '%(buildroot)s/src/scripts/cbuildbot_package.list'
diff --git a/cbuildbot/stages/artifact_stages.py b/cbuildbot/stages/artifact_stages.py
index 3b80342..4ee4dc4 100644
--- a/cbuildbot/stages/artifact_stages.py
+++ b/cbuildbot/stages/artifact_stages.py
@@ -41,6 +41,8 @@
 class NothingToArchiveException(Exception):
   """Thrown if ArchiveStage found nothing to archive."""
 
+  # We duplicate __init__ to specify a default for message.
+  # pylint: disable=useless-super-delegation
   def __init__(self, message='No images found to archive.'):
     super(NothingToArchiveException, self).__init__(message)
 
diff --git a/cbuildbot/stages/completion_stages_unittest.py b/cbuildbot/stages/completion_stages_unittest.py
index 29e7bdd..c75f8af 100644
--- a/cbuildbot/stages/completion_stages_unittest.py
+++ b/cbuildbot/stages/completion_stages_unittest.py
@@ -538,7 +538,7 @@
   BOT_ID = 'master-release'
 
   # We duplicate __init__ to specify a default for bot_id.
-  # pylint: disable=arguments-differ
+  # pylint: disable=arguments-differ,useless-super-delegation
   def _Prepare(self, bot_id=BOT_ID, **kwargs):
     super(CanaryCompletionStageTest, self)._Prepare(bot_id, **kwargs)
 
diff --git a/cli/cros/cros_lint.py b/cli/cros/cros_lint.py
index 3025c01..a7ac77e 100644
--- a/cli/cros/cros_lint.py
+++ b/cli/cros/cros_lint.py
@@ -159,7 +159,7 @@
 
 def _PylintFile(path, output_format, debug):
   """Returns result of running pylint on |path|."""
-  pylint = os.path.join(constants.DEPOT_TOOLS_DIR, 'pylint-1.6')
+  pylint = os.path.join(constants.DEPOT_TOOLS_DIR, 'pylint-1.7')
   pylintrc = _GetPylintrc(path)
   cmd = [pylint, '--rcfile=%s' % pylintrc]
   if output_format != 'default':
diff --git a/cli/cros/lint.py b/cli/cros/lint.py
index 20a101d..611533e 100644
--- a/cli/cros/lint.py
+++ b/cli/cros/lint.py
@@ -596,7 +596,7 @@
         if name == 'print_function':
           self.seen_print_func = True
 
-  def visit_from(self, node):
+  def visit_importfrom(self, node):
     """Process 'from' statements"""
     self.saw_imports = True
     self._check_print_function(node)
@@ -646,11 +646,11 @@
 
   def visit_module(self, node):
     """Called when the whole file has been read"""
-    stream = node.file_stream
-    st = os.fstat(stream.fileno())
-    self._check_shebang(node, stream, st)
-    self._check_encoding(node, stream, st)
-    self._check_module_name(node)
+    with node.stream() as stream:
+      st = os.fstat(stream.fileno())
+      self._check_shebang(node, stream, st)
+      self._check_encoding(node, stream, st)
+      self._check_module_name(node)
 
   def _check_shebang(self, _node, stream, st):
     """Verify the shebang is version specific"""
diff --git a/cli/deploy.py b/cli/deploy.py
index c8a66f1..97306b2 100644
--- a/cli/deploy.py
+++ b/cli/deploy.py
@@ -1092,6 +1092,8 @@
   lsb_release = None
   sysroot = None
   try:
+    # Somewhat confusing to clobber, but here we are.
+    # pylint: disable=redefined-argument-from-local
     with remote_access.ChromiumOSDeviceHandler(
         hostname, port=port, username=username, private_key=ssh_private_key,
         base_dir=_DEVICE_BASE_DIR, ping=ping) as device:
diff --git a/config/config_skew_unittest.py b/config/config_skew_unittest.py
index 5dbc9a4..5dae44c 100644
--- a/config/config_skew_unittest.py
+++ b/config/config_skew_unittest.py
@@ -14,7 +14,12 @@
 from chromite.lib import constants
 from chromite.lib import cros_test_lib
 from chromite.lib import osutils
+
+# TODO(vapier): Re-enable check once we upgrade to pylint-1.8+.
+# pylint: disable=no-name-in-module
 from google.protobuf import json_format
+# pylint: enable=no-name-in-module
+
 
 BUILDER_CONFIG_FILENAME = os.path.join(
     constants.SOURCE_ROOT, 'infra/config/generated/builder_configs.cfg')
diff --git a/lib/buildbot_annotations.py b/lib/buildbot_annotations.py
index 2caa7ff..b1b25ca 100644
--- a/lib/buildbot_annotations.py
+++ b/lib/buildbot_annotations.py
@@ -62,6 +62,9 @@
   """STEP_LINK annotation."""
   ANNOTATION_NAME = 'STEP_LINK'
 
+  # Some callers pass in text/url by kwarg.  We leave the full signature here
+  # so the API is a bit cleaner/more obvious.
+  # pylint: disable=useless-super-delegation
   def __init__(self, text, url):
     super(StepLink, self).__init__(text, url)
 
diff --git a/lib/buildbucket_v2.py b/lib/buildbucket_v2.py
index 9de1d35..467689c 100644
--- a/lib/buildbucket_v2.py
+++ b/lib/buildbucket_v2.py
@@ -17,7 +17,10 @@
 import ast
 import socket
 
+# TODO(vapier): Re-enable check once we upgrade to pylint-1.8+.
+# pylint: disable=no-name-in-module
 from google.protobuf import field_mask_pb2
+# pylint: enable=no-name-in-module
 
 from chromite.lib import constants
 from chromite.lib import cros_logging as logging
diff --git a/lib/buildbucket_v2_unittest.py b/lib/buildbucket_v2_unittest.py
index 32f1d56..a823911 100644
--- a/lib/buildbucket_v2_unittest.py
+++ b/lib/buildbucket_v2_unittest.py
@@ -9,9 +9,12 @@
 
 from datetime import datetime, date
 
+# TODO(vapier): Re-enable check once we upgrade to pylint-1.8+.
+# pylint: disable=no-name-in-module
 from google.protobuf import field_mask_pb2
 from google.protobuf.struct_pb2 import Struct, Value
 from google.protobuf.timestamp_pb2 import Timestamp
+# pylint: enable=no-name-in-module
 
 from chromite.lib import buildbucket_v2
 from chromite.lib import constants
diff --git a/lib/cloud_trace.py b/lib/cloud_trace.py
index 4a3b8f5..9bf78bd 100644
--- a/lib/cloud_trace.py
+++ b/lib/cloud_trace.py
@@ -14,7 +14,10 @@
 import random
 import re
 
+# TODO(vapier): Re-enable check once we upgrade to pylint-1.8+.
+# pylint: disable=no-name-in-module
 import google.protobuf.internal.well_known_types as types
+# pylint: enable=no-name-in-module
 from infra_libs import ts_mon
 
 from chromite.lib import cros_logging as log
diff --git a/lib/cros_test_lib.py b/lib/cros_test_lib.py
index ebe0562..8b49da1 100644
--- a/lib/cros_test_lib.py
+++ b/lib/cros_test_lib.py
@@ -1367,6 +1367,8 @@
   SORT_STATS_KEYS = ()
 
   def run(self, test):
+    # TODO(vapier): Drop this after we upgrade past pylint-1.7.
+    # pylint: disable=bad-python3-import
     import cProfile
     profiler = cProfile.Profile(**self.PROFILE_KWARGS)
     ret = profiler.runcall(unittest.TextTestRunner.run, self, test)
diff --git a/lib/gob_util.py b/lib/gob_util.py
index 2c3f0a8..8dd01a6 100644
--- a/lib/gob_util.py
+++ b/lib/gob_util.py
@@ -222,7 +222,7 @@
     except httplib2.ServerNotFoundError as e:
       pass
 
-  if not 'Authorization' in headers:
+  if 'Authorization' not in headers:
     logging.debug('No netrc file or Appengine credentials found.')
   if 'Cookie' not in headers:
     cookies = GetCookies(host, path)
diff --git a/lib/locking.py b/lib/locking.py
index fa970b5..38f65df 100644
--- a/lib/locking.py
+++ b/lib/locking.py
@@ -338,6 +338,8 @@
     pipe2 = getattr(os, 'pipe2', None)
     if pipe2:
       cloexec = getattr(os, 'O_CLOEXEC', 0)
+      # Pylint-1.7 is unable to handle this conditional logic.
+      # pylint: disable=not-callable
       pipes = pipe2(cloexec)
     else:
       pipes = os.pipe()
diff --git a/lib/luci/prpc/client.py b/lib/luci/prpc/client.py
index 96780fe..aed4d6d 100644
--- a/lib/luci/prpc/client.py
+++ b/lib/luci/prpc/client.py
@@ -15,7 +15,10 @@
 
 import collections
 
+# TODO(vapier): Re-enable check once we upgrade to pylint-1.8+.
+# pylint: disable=no-name-in-module
 from google.protobuf import symbol_database
+# pylint: enable=no-name-in-module
 
 from chromite.lib.luci import net
 from chromite.lib.luci.prpc import codes, encoding
diff --git a/lib/luci/prpc/client_unittest.py b/lib/luci/prpc/client_unittest.py
index e5234b2..5e3f801 100644
--- a/lib/luci/prpc/client_unittest.py
+++ b/lib/luci/prpc/client_unittest.py
@@ -11,7 +11,10 @@
 import sys
 import unittest
 
+# TODO(vapier): Re-enable check once we upgrade to pylint-1.8+.
+# pylint: disable=no-name-in-module
 from google.protobuf import empty_pb2
+# pylint: enable=no-name-in-module
 
 import mock
 from chromite.lib.luci import net
diff --git a/lib/luci/prpc/encoding.py b/lib/luci/prpc/encoding.py
index 8e68823..f7047b6 100644
--- a/lib/luci/prpc/encoding.py
+++ b/lib/luci/prpc/encoding.py
@@ -7,7 +7,10 @@
 
 from __future__ import print_function
 
+# TODO(vapier): Re-enable check once we upgrade to pylint-1.8+.
+# pylint: disable=no-name-in-module
 from google.protobuf import json_format, text_format
+# pylint: enable=no-name-in-module
 
 
 class Encoding(object):
diff --git a/lib/luci/utils.py b/lib/luci/utils.py
index 0d01601..3599d99 100644
--- a/lib/luci/utils.py
+++ b/lib/luci/utils.py
@@ -23,7 +23,10 @@
 import sys
 import threading
 
+# TODO(vapier): Re-enable check once we upgrade to pylint-1.8+.
+# pylint: disable=no-name-in-module
 from google.protobuf import timestamp_pb2
+# pylint: enable=no-name-in-module
 import six
 from six.moves import urllib
 
diff --git a/lib/luci/utils_unittest.py b/lib/luci/utils_unittest.py
index f973272..b8a2cf3 100644
--- a/lib/luci/utils_unittest.py
+++ b/lib/luci/utils_unittest.py
@@ -9,7 +9,10 @@
 
 from datetime import datetime, date
 
+# TODO(vapier): Re-enable check once we upgrade to pylint-1.8+.
+# pylint: disable=no-name-in-module
 from google.protobuf.timestamp_pb2 import Timestamp
+# pylint: enable=no-name-in-module
 
 from chromite.lib import cros_test_lib
 from chromite.lib.luci import utils
diff --git a/lib/patch.py b/lib/patch.py
index a6e90ea..eac1f50 100644
--- a/lib/patch.py
+++ b/lib/patch.py
@@ -1677,6 +1677,8 @@
       # remote:   https://chromium-review.googlesource.com/36756 Enforce a ...
       if 'New Changes:' in line:
         urls = []
+        # We're exiting the loop after this point.
+        # pylint: disable=redefined-outer-name
         for line in lines[num + 1:]:
           line = line.split()
           if len(line) < 2 or not line[1].startswith('http'):
diff --git a/lib/paygen/paygen_build_lib.py b/lib/paygen/paygen_build_lib.py
index 25c55ab..f0e65a8 100644
--- a/lib/paygen/paygen_build_lib.py
+++ b/lib/paygen/paygen_build_lib.py
@@ -38,7 +38,11 @@
 from chromite.lib.paygen import paygen_payload_lib
 from chromite.lib.paygen import utils
 
+# TODO(vapier): Re-enable check once we upgrade to pylint-1.8+.
+# pylint: disable=no-name-in-module
 from google.protobuf import json_format
+# pylint: enable=no-name-in-module
+
 
 # For crostools access.
 sys.path.insert(0, constants.SOURCE_ROOT)
diff --git a/pylintrc b/pylintrc
index c51a9f3..6e0f83e 100644
--- a/pylintrc
+++ b/pylintrc
@@ -134,6 +134,7 @@
     locally-enabled,
     missing-docstring,
     no-member,
+    no-else-return,
     no-self-use,
     redefined-variable-type,
     relative-import,
@@ -165,6 +166,9 @@
 # CHANGE: No report.
 reports=no
 
+# Activate the evaluation score.
+score=no
+
 # Python expression which should return a note less than 10 (10 is the highest
 # note). You have access to the variables errors warning, statement which
 # respectively contain the number of errors / warnings messages and the total
diff --git a/scripts/export_to_cloud_trace.py b/scripts/export_to_cloud_trace.py
index b0a0b36..f54f234 100644
--- a/scripts/export_to_cloud_trace.py
+++ b/scripts/export_to_cloud_trace.py
@@ -13,8 +13,11 @@
 import pprint
 import time
 
+# TODO(vapier): Re-enable check once we upgrade to pylint-1.8+.
+# pylint: disable=no-name-in-module
 from googleapiclient import discovery
 import google.protobuf.internal.well_known_types as types
+# pylint: enable=no-name-in-module
 from infra_libs import ts_mon
 import inotify_simple  # pylint: disable=import-error
 from oauth2client.client import GoogleCredentials
diff --git a/scripts/fwgdb.py b/scripts/fwgdb.py
index f2691bb..b1aa91f 100644
--- a/scripts/fwgdb.py
+++ b/scripts/fwgdb.py
@@ -43,13 +43,13 @@
 
 def GetGdbForElf(elf):
   """Return the correct C compiler prefix for the target ELF file."""
-  with open(elf, 'rb') as elf:
+  with open(elf, 'rb') as fp:
     return {
         'EM_386': 'x86_64-cros-linux-gnu-gdb',
         'EM_X86_64': 'x86_64-cros-linux-gnu-gdb',
         'EM_ARM': 'armv7a-cros-linux-gnueabihf-gdb',
         'EM_AARCH64': 'aarch64-cros-linux-gnu-gdb',
-    }[ELFFile(elf).header.e_machine]
+    }[ELFFile(fp).header.e_machine]
 
 
 def ParseArgs(argv):
