Changes between Version 5 and Version 6 of DjangoOnWindows


Ignore:
Timestamp:
Jun 30, 2008, 7:20:10 PM (16 years ago)
Author:
Ramiro Morales
Comment:

More info, summarize

Legend:

Unmodified
Added
Removed
Modified
  • DjangoOnWindows

    v5 v6  
    145145}}}
    146146
    147 The win32 installer for Python 2.5 has the same combination of pysqlite/sqlite versions and exhibits the same problem:
    148 
    149 {{{
    150 #!python
    151 Python 2.5 (r25:51908, Sep 19 2006, 09:52:17) [MSC v.1310 32 bit (Intel)] on win32
    152 Type "help", "copyright", "credits" or "license" for more information.
    153 >>> from sqlite3 import dbapi2
    154 >>> print dbapi2.version_info
    155 (2, 3, 2)
    156 >>> print dbapi2.sqlite_version_info
    157 (3, 3, 4)
    158 }}}
    159 
    160 The same test works flawlessly on the following platforms:
    161  * Python 2.4.4 + pysqlite2 2.3.2 + sqlite3 3.3.8 (GNU/Debian Linux 4.0)
    162  * Python 2.5 + builtin pysqlite2 ''aka'' sqlite3 2.3.2 + sqlite3 3.3.8 (GNU/Debian Linux 4.0)
    163  * Python 2.5.2 + builtin pysqlite2 ''aka'' sqlite3 2.3.2 + sqlite3 3.5.9 (GNU/Debian Linux Sid as of Jun 29, 2008)
    164 this may be thanks to the fact that on these platforms the shared sqlite3 library being used by the pysqlite2 (Python 2.4) or sqlite3 (Python 2.5) Python modules is the system wide one and so it hasn't been frozen at 3.3.4.
     147The win32 installer for Python 2.5 ships the same combination of pysqlite/sqlite versions and exhibits the same problem. The tests were also run under some other Windows- and Linux-based scenarios.
     148
     149Summarizing:
     150
     151|| '''Platform''' || '''Python version''' || '''pysqlite2 version''' || '''sqlite version''' || '''works?''' || '''Notes''' ||
     152|| win32          || 2.4.4                || 2.3.0 (external)        || 3.3.6                || YES          ||             ||
     153|| Debian Linux   || 2.4.4                || 2.3.2 (external)        || 3.3.8                || YES          ||             ||
     154|| win32          || 2.5                  || 2.3.2 (built-in sqlite3)|| 3.3.4                || NO           ||             ||
     155|| Debian Linux   || 2.5                  || 2.3.2 (built-in sqlite3)|| 3.3.8                || YES          ||             ||
     156|| win32          || 2.5.2                || 2.3.2 (built-in sqlite3)|| 3.3.4                || NO           ||             ||
     157|| win32          || 2.5.2                || 2.4.1 (external)        || 3.5.2                || YES          || '''*'''     ||
     158|| Debian Linux   || 2.5.2                || 2.3.2 (built-in sqlite3)|| 3.5.9                || YES          ||             ||
     159
     160As is can be seen, the test under Linux were always successful, this may be due to the fact that on these platforms the shared sqlite3 library being used by the pysqlite2 (Python 2.4) or sqlite3 (Python 2.5) Python modules is the system wide one and so it hasn't been frozen at 3.3.4.
    165161
    166162==== Possible solution ====
    167163
    168 As sqlite/pysqlite development continues, the pysqlite project keeps publishing new win32 binary installers for Python 2.5. Latest as of today June 29, 2008 is version 2.4.1 ({{{pysqlite-2.4.1.win32-py2.5.exe}}}) that uses sqlite version 3.5.2:
    169 
    170 {{{
    171 #!python
    172 >>> from pysqlite2 import dbapi2
    173 >>> print dbapi2.version_info
    174 (2, 4, 1)
    175 >>> print dbapi2.sqlite_version_info
    176 (3, 5, 2)
    177 >>>
    178 }}}
    179 
    180 The error doesn't show itself when running the tests if one manages to force Django to use this newer version of pysqlite (see below). This seems to indicate that something was fixed on sqlite between versions 3.3.4 and 3.5.2 (see http://sqlite.org/changes.html).
     164As the table above shows, version 3.3.4 of sqlite seems to be affected by this bug whilst version 3.3.6 isn't (see http://sqlite.org/changes.html for possible hints).
     165
     166As sqlite/pysqlite development continues, the pysqlite project keeps publishing new win32 binary installers for Python 2.5. Latest as of today June 29, 2008 is version 2.4.1 ({{{pysqlite-2.4.1.win32-py2.5.exe}}}) that uses sqlite version 3.5.2 (see entry marked with '''*''' in the table above.)
    181167
    182168==== How does this affect Django ====
Back to Top