diff --git a/dev/.gitignore b/dev/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..4a6027429e0d3db66d3384edc59cb4380e5cbb33
--- /dev/null
+++ b/dev/.gitignore
@@ -0,0 +1 @@
+pep8*.py
diff --git a/dev/lint-python b/dev/lint-python
index fded654893a7cea5dc264422e78799ebb5467251..f50d149dc4d44d989fe22c5785418c499bf078b8 100755
--- a/dev/lint-python
+++ b/dev/lint-python
@@ -32,18 +32,19 @@ compile_status="${PIPESTATUS[0]}"
 #+ See: https://github.com/apache/spark/pull/1744#issuecomment-50982162
 #+ TODOs:
 #+  - Download pep8 from PyPI. It's more "official".
-PEP8_SCRIPT_PATH="$SPARK_ROOT_DIR/dev/pep8.py"
-PEP8_SCRIPT_REMOTE_PATH="https://raw.githubusercontent.com/jcrocholl/pep8/1.6.2/pep8.py"
+PEP8_VERSION="1.6.2"
+PEP8_SCRIPT_PATH="$SPARK_ROOT_DIR/dev/pep8-$PEP8_VERSION.py"
+PEP8_SCRIPT_REMOTE_PATH="https://raw.githubusercontent.com/jcrocholl/pep8/$PEP8_VERSION/pep8.py"
 
-# if [ ! -e "$PEP8_SCRIPT_PATH" ]; then
-curl --silent -o "$PEP8_SCRIPT_PATH" "$PEP8_SCRIPT_REMOTE_PATH"    
-curl_status="$?"
+if [ ! -e "$PEP8_SCRIPT_PATH" ]; then
+    curl --silent -o "$PEP8_SCRIPT_PATH" "$PEP8_SCRIPT_REMOTE_PATH"    
+    curl_status="$?"
 
-if [ "$curl_status" -ne 0 ]; then
-    echo "Failed to download pep8.py from \"$PEP8_SCRIPT_REMOTE_PATH\"."
-    exit "$curl_status"
+    if [ "$curl_status" -ne 0 ]; then
+        echo "Failed to download pep8.py from \"$PEP8_SCRIPT_REMOTE_PATH\"."
+        exit "$curl_status"
+    fi
 fi
-# fi
 
 # There is no need to write this output to a file
 #+ first, but we do so so that the check status can
@@ -65,7 +66,7 @@ else
     echo "Python lint checks passed."
 fi
 
-rm "$PEP8_SCRIPT_PATH"
+# rm "$PEP8_SCRIPT_PATH"
 rm "$PYTHON_LINT_REPORT_PATH"
 
 exit "$lint_status"