This is the mail archive of the cygwin@sources.redhat.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: How to make an extension of Python


Mitsuo,

On Fri, Nov 10, 2000 at 04:37:09PM +0900, Mitsuo Igarashi wrote:
> |> dllwrap -o myEnviron.pyd -def myEnviron.def myEnviron.o -lpython2.0
> |> "Importerror: dynamic modules does not define init
> |> function ( initmyEnviron)".
> |
> |My guess is for some reason initmyEnviron is not being exported from
> |myEnviron.pyd.  What is the contents of your myEnviron.def file?
> 
> 
> EXPORTS
>  initenviron

Your myEnviron.def file should be the following:

    EXPORTS
        initmyEnviron
    
and myEnviron.c should define the corresponding function:

    void initmyEnviron() { ... }

You can use also use:

    DL_EXPORT(void) initmyEnviron() { ... }

and then you shouldn't need the def file.

Python requires that your init function match your module name as follows:

    If you have a module named "foo", then your init function must be
    named "initfoo".

> |Were you importing the above module into the Win32 or Cygwin Python?
> 
> cygwin python
> 
> This failure is probably the bad -lpython2.0.
> "libpython2.0.a" is not shared?

Yes, but libpython2.0.a is not "bad" is it just static.  You will have
all kinds of problems trying to building shared extensions if you link
with the static library.  This is the main reason for my patch.

Jason

-- 
Jason Tishler
Director, Software Engineering       Phone: +1 (732) 264-8770 x235
Dot Hill Systems Corporation         Fax:   +1 (732) 264-8798
82 Bethany Road, Suite 7             Email: Jason.Tishler@dothill.com
Hazlet, NJ 07730 USA                 WWW:   http://www.dothill.com

--
Want to unsubscribe from this list?
Send a message to cygwin-unsubscribe@sourceware.cygnus.com


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]