Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

kesalahan impor dengan python-mysql-connector 1.16, Django 1.6, dan python 3.2.3

Setelah mempelajari kodenya, sepertinya ada semacam kesalahan saat mereferensikan impor itu. Saya melihat ke dalam file /lib/python3.2/site-packages/Django/utils/six.py dan menemukan di mana referensinya adalah modul move.zip_longest.

Pertama adalah referensi ini:

moves = sys.modules[__name__ + ".moves"] = _MovedItems(__name__ + ".moves")

Yang berarti ia memanggil kelas _MovedItems, dan ini dia dengan referensi ke modul saya yang rusak.

class _MovedItems(_LazyModule):
    """Lazy loading of moved objects"""

    _moved_attributes = [
        MovedAttribute("zip_longest", "itertools", "itertools", "izip_longest", "zip_longest")

class MovedAttribute(_LazyDescr):

    def __init__(self, name, old_mod, new_mod, old_attr=None, new_attr=None):
        super(MovedAttribute, self).__init__(name)
        if PY3:
            if new_mod is None:
            new_mod = name
            self.mod = new_mod
            if new_attr is None:
                if old_attr is None:
                    new_attr = name
                else:
                    new_attr = old_attr
            self.attr = new_attr

Yang kemudian mewarisi dari kelas _LazyDescr, tapi itu adalah objek kecil yang pendek. Saya tidak tahu di mana ada yang salah, jika Anda memetakan Tuple yang diteruskan ke konstruktor MovedAttribute itu memetakan dengan benar versi lama ke yang baru. Saya tidak yakin mengapa itu gagal tetapi jika Anda menghapus pernyataan impor di file compiler.py dan cukup memanggil itertools zip_longest secara langsung, semuanya berfungsi.

Berikut tampilannya. Jika Anda menggunakan Python 3, edit file /lib/python3.2/site-packages/mysql/connector/Django/compiler.py, dan ubah baris 6 dari ini:

from django.utils.six.moves import zip_longest as six_zip_longest

untuk ini:

from itertools import zip_longest



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL menggabungkan dua kolom menjadi satu kolom

  2. Skenario Pencadangan dan Pemulihan Cloud MySQL Menggunakan Microsoft Azure

  3. Menghitung perbedaan waktu antara 2 tanggal dalam menit

  4. mysql — Mengunci baris untuk kueri pemilihan?

  5. PHP MySQL mendapatkan lokasi dalam radius lokasi pengguna dari GPS