Use a (mostly) hermetic Python interpreter

It still requires python to be installed on the host to run the wrapper
scripts, but it's close to being fully hermetic.

This also requires/enables the following changes, unfortunately all at
the same time:
 * Use a downloaded f2py
 * Use a downloaded scipy/numpy/matplotlib
 * Fix a few things that don't run with the python version in their #!
 * Stop using bazel-generated __init__.py files, because those interfere
   with importing matplotlib nicely

Change-Id: Ife280464613d67cece9587b7d947f0b1d5466d7e
diff --git a/debian/python.BUILD b/debian/python.BUILD
index 084f198..666f2d8 100644
--- a/debian/python.BUILD
+++ b/debian/python.BUILD
@@ -1,66 +1,97 @@
-package(default_visibility = ['@//debian:__pkg__'])
+package(default_visibility = ["@//debian:__pkg__"])
 
 cc_library(
-  name = 'python3.4_lib',
-  hdrs = glob(['usr/include/python3.4m/**/*.h']),
-  includes = [
-    'usr/include/python3.4m/',
-  ],
-  visibility = ['//visibility:public'],
+    name = "python3.4_lib",
+    hdrs = glob(["usr/include/python3.4m/**/*.h"]),
+    includes = [
+        "usr/include/python3.4m/",
+    ],
+    visibility = ["//visibility:public"],
 )
 
 cc_library(
-  name = 'python3.4_f2py',
-  srcs = [
-    'usr/lib/python3/dist-packages/numpy/f2py/src/fortranobject.c',
-  ],
-  hdrs = [
-    'usr/lib/python3/dist-packages/numpy/f2py/src/fortranobject.h',
-  ],
-  copts = [
-    '-Wno-error',
-    '-Wno-parentheses-equality',
-  ],
-  includes = [
-    'usr/lib/python3/dist-packages/numpy/f2py/src/',
-  ],
-  deps = [
-    ':python3.4_lib',
-  ],
-  visibility = ['//visibility:public'],
+    name = "python3.4_f2py",
+    srcs = [
+        "usr/lib/python3/dist-packages/numpy/f2py/src/fortranobject.c",
+    ],
+    hdrs = [
+        "usr/lib/python3/dist-packages/numpy/f2py/src/fortranobject.h",
+    ],
+    copts = [
+        "-Wno-error",
+        "-Wno-parentheses-equality",
+    ],
+    includes = [
+        "usr/lib/python3/dist-packages/numpy/f2py/src/",
+    ],
+    visibility = ["//visibility:public"],
+    deps = [
+        ":python3.4_lib",
+    ],
 )
 
 cc_library(
-  name = 'python2.7_lib',
-  hdrs = glob([
-    'usr/include/**/*.h',
-  ]),
-  srcs = [
-    'usr/lib/x86_64-linux-gnu/libpython2.7.so',
-  ],
-  includes = [
-    'usr/include/',
-    'usr/include/python2.7/',
-  ],
-  visibility = ['//visibility:public'],
+    name = "python2.7_lib",
+    srcs = [
+        "usr/lib/x86_64-linux-gnu/libpython2.7.so",
+    ],
+    hdrs = glob([
+        "usr/include/**/*.h",
+    ]),
+    includes = [
+        "usr/include/",
+        "usr/include/python2.7/",
+    ],
+    visibility = ["//visibility:public"],
 )
 
 cc_library(
-  name = 'python2.7_f2py',
-  srcs = [
-    'usr/lib/python2.7/dist-packages/numpy/f2py/src/fortranobject.c',
-  ],
-  hdrs = [
-    'usr/lib/python2.7/dist-packages/numpy/f2py/src/fortranobject.h',
-  ],
-  copts = [
-    '-Wno-error',
-  ],
-  includes = [
-    'usr/lib/python2.7/dist-packages/numpy/f2py/src/',
-  ],
-  deps = [
-    ':python2.7_lib',
-  ],
-  visibility = ['//visibility:public'],
+    name = "python2.7_f2py",
+    srcs = [
+        "usr/lib/python2.7/dist-packages/numpy/f2py/src/fortranobject.c",
+    ],
+    hdrs = [
+        "usr/lib/python2.7/dist-packages/numpy/f2py/src/fortranobject.h",
+    ],
+    copts = [
+        "-Wno-error",
+    ],
+    includes = [
+        "usr/lib/python2.7/dist-packages/numpy/f2py/src/",
+    ],
+    visibility = ["//visibility:public"],
+    deps = [
+        ":python2.7_lib",
+    ],
+)
+
+filegroup(
+    name = "all_files",
+    srcs = glob(["**"]),
+    visibility = ["//visibility:public"],
+)
+
+genrule(
+    name = "copy_f2py",
+    srcs = ["usr/bin/f2py"],
+    outs = ["f2py.py"],
+    cmd = "cp $< $@",
+    executable = True,
+)
+
+py_binary(
+    name = "f2py",
+    srcs = ["f2py.py"],
+    visibility = ["//visibility:public"],
+)
+
+filegroup(
+    name = "scipy",
+    srcs = glob([
+        "usr/lib/python3/dist-packages/numpy",
+        "usr/lib/python3/dist-packages/scipy",
+        "usr/lib/python2.7/dist-packages/numpy",
+        "usr/lib/python2.7/dist-packages/scipy",
+    ]),
+    visibility = ["//visibility:public"],
 )