diff --git a/src/one-body-sample.cc b/src/one-body-sample.cc
index 92592b8748c9154db160a94dca51101ee74f325f..724606f7387ba6d08ce59fbcd9740e330536c264 100644
--- a/src/one-body-sample.cc
+++ b/src/one-body-sample.cc
@@ -134,15 +134,11 @@ initStateUpdater(Config::state_model model,
   }
 }
 
-template <class FunctionMap> void initPython(FunctionMap &functions) {
+void initPython() {
   Python::start();
 
   Python::run("import sys");
   Python::run("sys.path.append('" srcdir "')");
-
-  Python::import("one-body-sample")
-      .get("Functions")
-      .toC<typename FunctionMap::Base>(functions);
 }
 
 double computeCOF(FrictionData const &fd, double V, double log_state) {
@@ -246,8 +242,14 @@ int main(int argc, char *argv[]) {
 
     // Set up functions for time-dependent boundary conditions
     using FunctionType = Dune::VirtualFunction<double, double>;
-    SharedPointerMap<std::string, FunctionType> functions;
-    initPython(functions);
+    using FunctionMap = SharedPointerMap<std::string, FunctionType>;
+    FunctionMap functions;
+    {
+      initPython();
+      Python::import("one-body-sample")
+          .get("Functions")
+          .toC<typename FunctionMap::Base>(functions);
+    }
     auto const &velocityDirichletFunction =
         functions.get("velocityDirichletCondition");
     auto const &neumannFunction = functions.get("neumannCondition");