Can embedded static-linked python still import dll extensions?

Gordon McMillan gmcm at hypernet.com
Tue Mar 14 12:02:03 EST 2000


Warren Postma wrote:

> I recompiled the Python sources for Windows with config.h and put this line
> in:
> 
> #define MS_NO_COREDLL 1  // build a static library not a DLL!
> 
> 
> Now it statically links fine, but it doesn't allow me to import .pyd files
> (Python extension DLLs). Do you have to use the external Python DLL to allow
> importing modules from DLLs, or can you statically link python but still
> allow external DLL add ons somehow?
> 
> I want my embedded python deeply embedded but I still want to produce .PYD
> style add ons for the system once it's in the field. Am I stuck?

Yes. A .pyd needs addresses of routines in Python. Since 
loading a .dll (which is what a .pyd is) is *not* a full link on 
Windows (unlike loading a .so on *nix), Python needs to be 
built as a .dll (unless you want to go to the work of exposing 
all those routines yourself).

- Gordon




More information about the Python-list mailing list