Pull to refresh

Comments 17

ага, значит с переходом на третий питон сама рассосется…
осталось три-четыре года подождать…
Осенью же выйдет django 1.5 с поддержкой python 3.3
Да и сейчас уже есть форки django работающие под python 3.2
Переводить MIME-типы — какая забота о пользователях, их же все читают!
А это не связано с русскими именами профиля в винде? В своё время когда была подобная проблема (не на моём компьютере), грешил на это, но так и не выяснил этого. Починил правкой какого-то питонячего файла.
У меня была эта проблема. Не найдя решения, решил, что больше никогда в жизни не буду запускать Django из-под Windows и настроил Linux в виртуалке (VirtualBox), а потом настроил внутреннюю сеть между Windows, где по-преднему велось написание кода и верстка, и виртуалкой.

После этого моя жизнь стала похожа на сказку :) Никаких тебе проблем с компиляцией Python-модулей под Windows, никаких левых ошибок.

Разработка изначально не велась на Linux потому, что мне не нравится UI и скорость работы моих основных инструментов из-под Linux. На Windows с этим попроще.

PS: с тех пор я уже успел перелезть на Mac, на котором эта проблема отпала сама собой :)
У меня русские MIME типы появились в реестре после установки QuickTime. И проблема проявляется не только в Django но и в SimpleHTTPServer, и при использовании других модулей.
Говорят, что в наше время написать новый баг очень непросто. Скорре всего его уже кто- то когда- то писал. Возможно менее успешно, с хмурым и невзрачным интерфейсом, но он уже был когда-то создан… Наверное это хорошо.

:)
Кажись такая же ошибка была у меня (Python v2.6), под Vista всё нормально разрабатывал, запусти на WinXP и стала появляться ошибка. Чтобы исправить ошибку, надо сделать следующее:
В python\lib\site.py есть функция setencoding, замени в условии первый ноль на единицу:

def setencoding():
  """Set the string encoding used by the Unicode implementation.  The
  default is 'ascii', but if you're willing to experiment, you can
  change this."""
  encoding = "ascii" # Default value set by _PyUnicode_Init()
  if 1:  <<<<<<<<<<<<<-------------------------------------
      # Enable to support locale aware default string encodings.
      import locale
      loc = locale.getdefaultlocale ()
      if loc[1]:
          encoding = loc[1]
  if 0:
      # Enable to switch off string to Unicode coercion and implicit
      # Unicode to string conversion.
      encoding = "undefined"
  if encoding != "ascii":
      # On Non-Unicode builds this will raise an AttributeError...
      sys.setdefaultencoding (encoding) # Needs Python Unicode build !

> Кажись такая же ошибка была у меня (Python v2.6),

ваша правда, что в питоне полно таких проблем. а чудо-код, который вы привели, вероятно является квинтэссенцией всего этого. :)

но баг, описанный в данной статье, касается только 2.7, в котором модуль mimetypes стал обращаться к реестру винды для пополнения собственной базы mime-типов. в предыдущих версиях этого не было, поэтому одно из решений, видимо, будет даунгрейдить python.

зы: игры с sys.setdefaultencoding() чреваты, поэтому так делать не стоит.
До джанго мне никакого дела, но нашёл у себя в реестре такую прелесть:

аудио/AMR
аудио/x-gsm
видео/x-m4v

Интересно, какая программа постаралась…
Это всем известный баг, на винде поставьте виртуальную машину с linux и будет вам счастье.
зачем ставить виртуалку, если можно сидеть просто под линуксом или макосью?

В начале статьи сказано:
не сидящим все время под windows, но иногда там появляющимся...

Для данной ситуации ваш совет несколько неприемлим.
Недавно был у меня подобный баг с mimetypes: при вставке свг через тег просто ничего не появлялось( в лисе), а в хроме предлагал загрузить файл. Вылечилось это добавлением:
mimetypes.add_type(«image/svg+xml», ".svg", True)
mimetypes.add_type(«image/svg+xml», ".svgz", True)
в код вьюшки. Может кому поможет.
тег object* Парсер съел тег(
Sign up to leave a comment.

Articles