title: Py_InitModule with multiple functions - invalid conversion from int to PyCFunction
body: <p>I am transitioning to removing the boost-python dependencies in my code, and I have made to to the "final step" of this transition (I removed all other boost dependencies, and when I comment out the boost code below I get <code>ImportError: dynamic module does not define init function (initMy_module</code>). </p>
  
  <p>Here is the code as it stands</p>
  
  <pre><code>#include &lt;boost/python.hpp&gt;
  namespace bpn = boost::python::numeric;
  using namespace boost::python;
  BOOST_PYTHON_MODULE(My_module)
  {
    using namespace bpn;
    import_array();
    array::set_module_and_type("numpy", "ndarray");
  
    register_exception_translator&lt;int&gt;(&amp;translator);
  
    def("run_My_module", run_My_module, "run my moduule");
    def("run_My_module_another_way", run_My_module_another_way, "run my module another way");
  }
  </code></pre>
  
  <p>From my understanding of the python/C API, I believe that the following code should superficially link my C and Python code.</p>
  
  <pre><code>static PyMethodDef myModule_methods[] = {
      {"run_My_module", run_My_module, METH_VARARGS},
      {"run_My_module_another_way", run_My_module_another_way, METH_VARARGS},
      {NULL, NULL}
      };
  
  void initmyModule(void)
  {
      // Init module.
      (void) Py_InitModule("myModule", myModule_methods);
  
  }
  </code></pre>
  
  <p>However, this produces the following errors:</p>
  
  <pre><code>myModule_python_binding.cpp:126:5: error: invalid conversion from 'int (*)(char*, char*, char*, PyObject*) {aka int (*)(char*, char*, char*, _object*)}' to 'PyCFunction {aka _object* (*)(_object*, _object*)}' [-fpermissive]
       };
       ^
  myModule_python_binding.cpp:126:5: error: invalid conversion from 'int (*)(char*, ompi_communicator_t*&amp;, char*, char*, PyObject*) {aka int (*)(char*, ompi_communicator_t*&amp;, char*, char*, _object*)}' to 'PyCFunction {aka _object* (*)(_object*, _object*)}' [-fpermissive]
  </code></pre>
  
  <p>both functions are of this form. They both return integers indicating their level of success.</p>
  
  <pre><code>int run_myModule(char *infile, char *outfile, char *errfile, pyObject *exc)
  {...};
  
  int run_myModule_another_way(char *infile, int &amp;_exvar, char *outfile, char *errfile, pyObject *exc)
  {...};
  </code></pre>
  
  <p>Why is my "superficial" connection failing?</p>