Are makepy-generated COM wrapper classes distributable?

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • gundlach

    Are makepy-generated COM wrapper classes distributable?

    Hi!

    I've just written a Python speech-recognition module (http://
    pyspeech.google code.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
  • gundlach

    #2
    Re: Are makepy-generated COM wrapper classes distributable?

    On Aug 4, 2:24 am, gundlach <gundl...@gmail .comwrote:
    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

    Comment

    Working...