Extending/Embedding python

Alicia Haumann alicia.haumann at orthodyne.com
Wed Sep 1 19:50:46 EDT 2004


I accidentally sent this to webmaster at python.org, so this could be a
duplicate if "webmaster" forwards it to this list.  :{

Hi, there.

Thanks for any help that can be offered.  I've been working with Python for
a year or more now, but only doing simple extending in C/C++.  I'm now
attempting some embedding and several questions have come to mind.

BTW - I'm running Windows 2000 with Python23 and VisualC++ developers
studio.

1.  (Not extending/embedding related at all)  How can I pass in a load/bunch
of defines so I can use them over and over again, instead of having to copy
them in every *.py script.  All my scripts use an "extension" dll that I
wrote that require a lot of constants.  I looked a lot at that PyMemberDef
and Type stuff but didn't get it and don't know if that's the solution
anyway.

2.  A couple simple examples I've seen for initModule() are written
differently.  One only calls Py_InitModule("module", module_methods), but
the other also calls PyImport_AddModule("module").  What is the difference?
What does PyImport_AddModule() accomplish?

3.  When embedding Python into my simple application, why can't I pass
application parameters?  PyRun_SimpleString seems to only take hard-coded
values.  Can/How can I get around this?  My code looks like:

  if (!Py_IsInitialized())
  {
   Py_Initialize();
  }
  PyRun_SimpleString("import MyModule");
  PyRun_SimpleString("MyModule.init(1, 'c:\\diag\\dsp.ldr', 0x5555)");
  PyRun_SimpleString("MyModule.MemoryTest(1, 0, 1)");
  PyRun_SimpleString("MyModule.Shutdown()");
  Py_Finalize();

But I'd like to pass application variables instead of the hard-coded 1, 0, 1
and 0x5555, such as:

int appInt = 0x5555;
PyRun_SimpleString("MyModule.init(1, 'c:\\diag\\dsp.ldr', appInt)");

I know I'm missing something fundamental here.  Please advise.

Also, is there a mailing list that I should join for this topic?

Thank you!!!!!!

Alicia.




More information about the Python-list mailing list