Jak naprawić błąd "module is deprecated" dla modułu mysql-python

Konfigurując Django na Windows napotkałem na błąd w module mysql-python obsługującym bazę MySQL. Gdy uruchamiałem serwer developerski Django poleceniem: python manage.py runserver wyrzucany był poniższy błąd: [cytat]C:Python26libsite-packagesMySQLdb__init__.py:34: DeprecationWarning: the se ts module is deprecated from sets import ImmutableSet[/cytat] Przeszukując sieć udało mi się natrafić na sposób naprawienia tego problemu. Wchodzimy do katalogu: C:Python26Libsite-packagesMySQLdb Edytujemy plik: init Szukamy linii wyglądających tak: [code=py]from sets import ImmutableSet class DBAPISet(ImmutableSet):[/code] Zastępujemy je poniższą linijką: [code=py]class DBAPISet(frozenset):[/code]

Konfigurując Django na Windows napotkałem na błąd w module mysql-python obsługującym bazę MySQL. Gdy uruchamiałem serwer developerski Django poleceniem: python manage.py runserver wyrzucany był poniższy błąd: [cytat]C:Python26libsite-packagesMySQLdb__init__.py:34: DeprecationWarning: the se ts module is deprecated from sets import ImmutableSet[/cytat]

Przeszukując sieć udało mi się natrafić na sposób naprawienia tego problemu.

  1. Wchodzimy do katalogu: C:Python26Libsite-packagesMySQLdb

  2. Edytujemy plik: init Szukamy linii wyglądających tak: [code=py]from sets import ImmutableSet class DBAPISet(ImmutableSet):[/code] Zastępujemy je poniższą linijką: [code=py]class DBAPISet(frozenset):[/code]

  3. Edytujemy plik: converters.py Szukamy linii: [code=py]from sets import BaseSet, Set[/code] Usuwamy ją. U mnie była to linia 37.

Następnie szukamy: [code=py]def Str2Set(s): return Set([ i for i in s.split(’,’) if i ])[/code] i zamieniamy na: [code=py]def Str2Set(s): return set([ i for i in s.split(’,’) if i ])[/code] Jak widać zmieniła się tylko nazwa funkcji Set na małe litery set. U mnie była to linia 45.

Teraz szukamy linii [code=py]Set: Set2Str,[/code] i zamieniamy ją na: [code=py]set: Set2Str,[/code] Tutaj też nazwa Set zmieniła się na set. Jest to linia 129.

Gotowe!

Po wykonaniu powyższych zmian nie powinny wyskakiwać błędy podczas odpalania serwera Django.

Bibliotekę mysql-python z instalatorem można znaleźć na stronie: MySQL-python-1.2.2.win32-py2.6.exe (1,022.8 KiB) http://www.codegood.com/archives/4

Źródło gdzie znalazłem rozwiązanie problemu: http://sourceforge.net/projects/mysql-python/forums/forum/70460/topic/2316047