WedX - журнал о программировании и компьютерных науках

Ошибка при выполнении Django manage.py syncdb

Извините за такой глупый вопрос. Я нуб в Джанго. Я следовал официальному руководству Django и на этапе python3 manage.py syncdb я получил эту огромную ошибку

    Creating tables ...
Creating table django_admin_log
Creating table auth_permission
Creating table auth_group_permissions
Creating table auth_group
Creating table auth_user_groups
Creating table auth_user_user_permissions
Creating table auth_user
Creating table django_content_type
Creating table django_session
Traceback (most recent call last):
  File "/usr/local/lib/python3.3/dist-packages/django/contrib/contenttypes/models.py", line 39, in get_for_model
    ct = self._get_from_cache(opts)
  File "/usr/local/lib/python3.3/dist-packages/django/contrib/contenttypes/models.py", line 29, in _get_from_cache
    return self.__class__._cache[self.db][key]
KeyError: 'default'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.3/dist-packages/django/db/backends/util.py", line 46, in execute
    return self.cursor.execute(sql, params)
  File "/usr/local/lib/python3.3/dist-packages/django/db/backends/mysql/base.py", line 124, in execute
    return self.cursor.execute(query, args)
  File "/usr/local/lib/python3.3/dist-packages/MySQL_python-1.2.3-py3.3-linux-x86_64.egg/MySQLdb/cursors.py", line 184, in execute
    self.errorhandler(self, exc, value)
  File "/usr/local/lib/python3.3/dist-packages/MySQL_python-1.2.3-py3.3-linux-x86_64.egg/MySQLdb/connections.py", line 37, in defaulterrorhandler
    raise errorvalue
  File "/usr/local/lib/python3.3/dist-packages/MySQL_python-1.2.3-py3.3-linux-x86_64.egg/MySQLdb/cursors.py", line 171, in execute
    r = self._query(query)
  File "/usr/local/lib/python3.3/dist-packages/MySQL_python-1.2.3-py3.3-linux-x86_64.egg/MySQLdb/cursors.py", line 330, in _query
    rowcount = self._do_query(q)
  File "/usr/local/lib/python3.3/dist-packages/MySQL_python-1.2.3-py3.3-linux-x86_64.egg/MySQLdb/cursors.py", line 294, in _do_query
    db.query(q)
_mysql_exceptions.ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '%s  AND `django_content_type`.`app_label` = %s )' at line 1")

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/usr/local/lib/python3.3/dist-packages/django/core/management/__init__.py", line 397, in execute_from_command_line
    utility.execute()
  File "/usr/local/lib/python3.3/dist-packages/django/core/management/__init__.py", line 390, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/usr/local/lib/python3.3/dist-packages/django/core/management/base.py", line 240, in run_from_argv
    self.execute(*args, **options.__dict__)
  File "/usr/local/lib/python3.3/dist-packages/django/core/management/base.py", line 283, in execute
    output = self.handle(*args, **options)
  File "/usr/local/lib/python3.3/dist-packages/django/core/management/base.py", line 413, in handle
    return self.handle_noargs(**options)
  File "/usr/local/lib/python3.3/dist-packages/django/core/management/commands/syncdb.py", line 112, in handle_noargs
    emit_post_sync_signal(created_models, verbosity, interactive, db)
  File "/usr/local/lib/python3.3/dist-packages/django/core/management/sql.py", line 216, in emit_post_sync_signal
    interactive=interactive, db=db)
  File "/usr/local/lib/python3.3/dist-packages/django/dispatch/dispatcher.py", line 182, in send
    response = receiver(signal=self, sender=sender, **named)
  File "/usr/local/lib/python3.3/dist-packages/django/contrib/auth/management/__init__.py", line 82, in create_permissions
    ctype = ContentType.objects.db_manager(db).get_for_model(klass)
  File "/usr/local/lib/python3.3/dist-packages/django/contrib/contenttypes/models.py", line 47, in get_for_model
    defaults = {'name': smart_text(opts.verbose_name_raw)},
  File "/usr/local/lib/python3.3/dist-packages/django/db/models/manager.py", line 154, in get_or_create
    return self.get_queryset().get_or_create(**kwargs)
  File "/usr/local/lib/python3.3/dist-packages/django/db/models/query.py", line 373, in get_or_create
    return self.get(**lookup), False
  File "/usr/local/lib/python3.3/dist-packages/django/db/models/query.py", line 301, in get
    num = len(clone)
  File "/usr/local/lib/python3.3/dist-packages/django/db/models/query.py", line 77, in __len__
    self._fetch_all()
  File "/usr/local/lib/python3.3/dist-packages/django/db/models/query.py", line 856, in _fetch_all
    self._result_cache = list(self.iterator())
  File "/usr/local/lib/python3.3/dist-packages/django/db/models/query.py", line 220, in iterator
    for row in compiler.results_iter():
  File "/usr/local/lib/python3.3/dist-packages/django/db/models/sql/compiler.py", line 711, in results_iter
    for rows in self.execute_sql(MULTI):
  File "/usr/local/lib/python3.3/dist-packages/django/db/models/sql/compiler.py", line 777, in execute_sql
    cursor.execute(sql, params)
  File "/usr/local/lib/python3.3/dist-packages/django/db/backends/util.py", line 46, in execute
    return self.cursor.execute(sql, params)
  File "/usr/local/lib/python3.3/dist-packages/django/db/utils.py", line 99, in __exit__
    six.reraise(dj_exc_type, dj_exc_value, traceback)
  File "/usr/local/lib/python3.3/dist-packages/django/utils/six.py", line 328, in reraise
    raise value.with_traceback(tb)
  File "/usr/local/lib/python3.3/dist-packages/django/db/backends/util.py", line 46, in execute
    return self.cursor.execute(sql, params)
  File "/usr/local/lib/python3.3/dist-packages/django/db/backends/mysql/base.py", line 124, in execute
    return self.cursor.execute(query, args)
  File "/usr/local/lib/python3.3/dist-packages/MySQL_python-1.2.3-py3.3-linux-x86_64.egg/MySQLdb/cursors.py", line 184, in execute
    self.errorhandler(self, exc, value)
  File "/usr/local/lib/python3.3/dist-packages/MySQL_python-1.2.3-py3.3-linux-x86_64.egg/MySQLdb/connections.py", line 37, in defaulterrorhandler
    raise errorvalue
  File "/usr/local/lib/python3.3/dist-packages/MySQL_python-1.2.3-py3.3-linux-x86_64.egg/MySQLdb/cursors.py", line 171, in execute
    r = self._query(query)
  File "/usr/local/lib/python3.3/dist-packages/MySQL_python-1.2.3-py3.3-linux-x86_64.egg/MySQLdb/cursors.py", line 330, in _query
    rowcount = self._do_query(q)
  File "/usr/local/lib/python3.3/dist-packages/MySQL_python-1.2.3-py3.3-linux-x86_64.egg/MySQLdb/cursors.py", line 294, in _do_query
    db.query(q)
django.db.utils.ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '%s  AND `django_content_type`.`app_label` = %s )' at line 1")

Я успешно установил python3, драйвер mysql. Использование убунту. Вот мои настройки.py

    DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME' : 'blog',
        'USER' : 'root',
        'PASSWORD' : 'hellyeah',
        'HOST' : '',
        'PORT' : ''
    }
}

Было бы здорово, если бы кто-нибудь научил меня, что не так..

25.08.2013

  • MySQL-python не поддерживает Python 3.3 stackoverflow.com/questions/15202503/. На официальной странице говорится, что поддержка находится в пути sourceforge.net/projects/mysql-python. 25.08.2013
  • Ой, спасибо.. Теперь, кажется, я пытался выучить python зря... Лучше я вернусь к php 25.08.2013
  • @ user2665252 э, что? Все, что он сказал, это то, что эта библиотека несовместима с Python 3. Вместо этого используйте Python 2.7 или найдите библиотеку MySQL, совместимую с версией 3.3. 25.08.2013
  • Или попробуйте какой-нибудь другой движок базы данных. Например, PostgreSQL. Но на самом деле, если единственной продуктивной вещью, которую я сегодня сделал, было перевести кого-то с Python обратно на PHP, я покончу с собой... 25.08.2013
  • Не волнуйтесь, попробуйте с Python 2.7. 26.08.2013
  • sqlite3 действительно прост в использовании, попробуйте для начала. ORM позволяет легко перейти на postgres позже, если вы хотите. 09.09.2013
  • Нет причин использовать Django с Python3, так как он является экспериментальным и только для начала, а не для производства. Кроме того, его командная строка не дает точной ошибки при использовании с python3. 18.09.2013
  • Ты прав. В то время я мало что знал о джанго. И мой класс преподавал Python 3.3, поэтому я подумал, что 3.3 будет лучше во всех отношениях. 24.09.2013

Ответы:


1

Это потому, что вы используете Python 3 с django. Драйвера для него пока нет. Поскольку вы начинаете с django и Python, почему бы не использовать Sqlite, у него есть хороший драйвер Python3, и его будет достаточно для вашего обучения.

Вы также можете попробовать использовать Postgres, но у него гораздо больше настроек, чем у Sqlite.

26.09.2013
  • В качестве обновления вы можете использовать mysqlclient в качестве соединителя, и он должен работать: pypi.python.org/pypi /mysqlclient 20.11.2014
  • Новые материалы

    Я хотел выучить язык программирования MVC4, но не мог выучить его раньше, потому что это выглядит сложно…
    Просто начните и учитесь самостоятельно Я хотел выучить язык программирования MVC4, но не мог выучить его раньше, потому что он кажется мне сложным, и я бросил его. Это в основном инструмент..

    Лицензии с открытым исходным кодом: руководство для разработчиков и создателей
    В динамичном мире разработки программного обеспечения открытый исходный код стал мощной парадигмой, способствующей сотрудничеству, инновациям и прогрессу, движимому сообществом. В основе..

    Объяснение документов 02: BERT
    BERT представил двухступенчатую структуру обучения: предварительное обучение и тонкая настройка. Во время предварительного обучения модель обучается на неразмеченных данных с помощью..

    Как проанализировать работу вашего классификатора?
    Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

    Работа с цепями Маркова, часть 4 (Машинное обучение)
    Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

    Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
    Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

    Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
    Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..


    Для любых предложений по сайту: [email protected]