[Python-Dev] Renaming sqlite3

Thomas Heller theller at python.net
Mon Apr 3 15:40:59 CEST 2006


Martin v. Löwis wrote:
> I just tried creating a pysqlite VS project, and ran into a naming
> conflict: the Windows DLL is called sqlite3.dll. So if it is on
> sys.path
> 
> import sqlite3
> 
> might find the DLL, instead of finding the package. Python then
> finds that there is no entry point in sqlite3, and raises an
> ImportError.
> 
> I see three options:
> 1. rename sqlite3 again
> 2. link sqlite3 statically into _sqlite3.pyd
> 3. stop treating .DLL files as extension modules
> 
> I'm actually leaning towards option 3: what is the rationale
> for allowing Python extension modules to be named .DLL?

Don't know.

But if you make the change to implement option 3, IMO it would be a good idea to add
the Python version number to the .pyd basename as well.

pywin32 already has to do this, since pythoncomXY.pyd and pywintypesXY.pyd
have to live (if possible) in the windows directory.

There have been other conflicts reported before: I remember Windows\system32\wmi.dll
conflicting with Tim Golden's wmi.py module.  In addition, wmi.dll is very special,
since it doesn't have an import table, IIRC.

Thomas



More information about the Python-Dev mailing list