Are *.pyd's universal?

Carl Banks pavlovevidence at gmail.com
Fri Oct 30 12:40:41 CET 2009


On Oct 29, 9:10 pm, Lawrence D'Oliveiro <l... at geek-
central.gen.new_zealand> wrote:
> In message <mailman.2297.1256863331.2807.python-l... at python.org>, Christian
>
> Heimes wrote:
> > Lawrence D'Oliveiro schrieb:
>
> >> In message <mailman.2268.1256841007.2807.python-l... at python.org>,
> >> Christian Heimes wrote:
>
> >>> On Linux and several other Unices the suffix is .so and not .pyd.
>
> >> Why is that? Or conversely, why isn't it .dll under Windows?
>
> > On Windows it used to be .dll, too.
> > The suffix was changed to avoid issues with other dlls and name clashes.
>
> What clashes? How come other OSes don't seem prone to the same problems?

Yeah, because who ever heard of one OS having a problem that another
OS didn't?

Windows searches for DLLs on the executable path, which always
includes the current directory.  So if you have a module called
system32.dll in your currently directory, you could be in big trouble.

Unix doesn't automatically search the current dir, doesn't use the
executable search path (libraries have their own search path, which is
not used when loading shared libs by hand), and system libraries on
Unix conventionally are prefixed by lib.  So name collisions are rare,
but even if if you have a module called libc.so in your current
directory it will not conflict with /lib/libc.so.


Carl Banks



More information about the Python-list mailing list