InterfaceError (0, '')

Я создал сайт с использованием Django, и я получаю эту неприятную ошибку, когда пытаюсь выполнить запрос.

Если я перезапущу сервер Apache, ошибка исчезнет на короткое время.

Traceback: File "/usr/local/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response 100. response = callback(request, *callback_args, **callback_kwargs) File "/home/fran/cron/views/set_caches.py" in set_caches 24. cursor.execute(query, [category['id']]) File "/usr/local/lib/python2.7/site-packages/django/db/backends/util.py" in execute 15. return self.cursor.execute(sql, params) File "/usr/local/lib/python2.7/site-packages/django/db/backends/mysql/base.py" in execute 86. return self.cursor.execute(query, args) File "build/bdist.linux-i686/egg/MySQLdb/cursors.py" in execute 155. charset = db.character_set_name() Exception Type: InterfaceError at /blablabla/ Exception Value: (0, '') 

  • Текстовые файлы для конкатенации Python
  • Извлечение данных из Интернета
  • Добавить новые режимы навигации в matplotlib
  • AWS Elastic Beanstalk не использует мой virtualenv: «Без модуля с именем boto»
  • Настройте Apache для использования Python так же, как CGI PHP
  • Самый простой способ приостановить программу python из командной строки?
  • Как поместить окно tkinter поверх других?
  • сравнение python с c / fortran
  • 4 Solutions collect form web for “InterfaceError (0, '')”

    Это вызвано глобальным курсором. Попробуйте создать и закрыть курсор внутри каждого метода, нужен необработанный запрос.

     cursor = connection.cursor() cursor.execute(query) cursor.close() 

    Вы получаете эту ошибку, когда у вас есть db.close() а затем попытайтесь получить доступ к базе данных без создания нового соединения. Попробуйте найти, если вы закрываете соединение с базой данных, когда вы этого не хотите.

    Я могу подтвердить, что это вызвано глобальным курсором, который впоследствии используется в некоторых функциях. Мои симптомы были такими же: прерывистые ошибки интерфейса, которые будут временно очищены перезапуском apache.

     from django.db import connection cursor = connection.cursor() # BAD def foo(): cursor.execute('select * from bar') 

    Но я использую Django поверх Oracle 11.2, поэтому я не считаю, что это ошибка в драйвере MySQL / python. Вероятно, это связано с кэшированием, выполняемым apache / mod_wsgi.

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

     conn = connect() cur = conn.cursor() tk = get_tickers(cur) for t in tk: prices = read_price(t, cur) if prices != None: update_price(t, cur) print 'Price after update of ticker ', t, ':' p_open, p_high, p_low, p_close = read_price(t, cur) print p_open, p_high, p_low, p_close else: print 'Price for ', t, ' is not available' conn.close() 

    Я получил ту же ошибку, о которой сообщил Мариан. После того, как dedenting conn.close (), все работало хорошо. Подтверждено, что глобальная связь не является проблемой.

    Python - лучший язык программирования в мире.