Are makepy-generated COM wrapper classes distributable?

G

gundlach

Hi!

I've just written a Python speech-recognition module (http://
pyspeech.googlecode.com). It provides a clean and simple interface to
the Microsoft Speech SDK using COM wrapper classes generated by
PythonWin's MakePY utility.

Once this is a mature module, I'd like to make it as useful as
possible to the community, so I'd like to make installation as simple
as possible. Currently, to get speech.py to work, you must first:

* install the Microsoft Speech SDK onto a Windows box, and
* possibly install PythonWin, and then
* run PythonWin's MakePY utility to generate modules into the gen_py
dir.

I'd like to remove the MakePY steps, so that as long as a user has run
the SDK installer, she can install the 'speech' package and be ready
to use it. Can I somehow bundle the generated modules into my
setuptools package so that the wrappers are installed at the same
time? (If so, how -- just copy them into the package directory?) Or
are the wrappers targeted to my machine or installation, so that
everyone is forced to go through this?

Thanks for any pointers,
Michael
 
G

gundlach

Can I somehow bundle the generated modules into my
setuptools package so that the wrappers are installed at the same
time?  (If so, how -- just copy them into the package directory?)  Or
are the wrappers targeted to my machine or installation, so that
everyone is forced to go through this?

I answered my own question, and it's even better than I had hoped
for. For posterity: running

python $PYTHONDIR/lib/site-packages/win32com/client/makepy.py -i

and selecting your COM class of choice will output the Python code to
stick into your module which guarantees that the necessary wrapper
classes exist in the cache. If they don't, they're created at
runtime. If they do, it's a no-op.

So there's no need for me to tell users to run MakePY, nor for me to
copy the generated classes into my project somehow. Great!

Michael
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,731
Messages
2,569,432
Members
44,834
Latest member
BuyCannaLabsCBD

Latest Threads

Top