Что за ошибка с магическим числом? - PullRequest
273 голосов
/ 05 февраля 2009

Что такое «ошибка с магическим числом» ImportError в python и как мне это исправить?

Единственное, что я могу найти в Интернете, предполагает, что это вызвано компиляцией файла .py -> .pyc и последующей попыткой использовать его с неправильной версией python. В моем случае, однако, файл иногда импортируется нормально, но не в других, и я не знаю, почему.

Информация, которую питон предоставляет в трассировке, не особенно полезна (вот почему я спрашивал здесь ...), но здесь, на случай, если это поможет:

Traceback (most recent call last):
  File "run.py", line 7, in <module>
    from Normalization import Normalizer

Ответы [ 13 ]

0 голосов
/ 09 сентября 2016

Не удаляйте их !!! До ..........

Найдите версию в вашей папке git, svn или copy, которая работает.

Удалите их, а затем восстановите все .pyc.

Это работа для меня.

0 голосов
/ 04 декабря 2015

В моем случае это были не .pyc, а старые двоичные файлы перевода .mo после того, как я переименовал свой собственный модуль, поэтому внутри этой папки модуля мне пришлось запустить

find . -name \*.po -execdir sh -c 'msgfmt "$0" -o `basename $0 .po`.mo' '{}' \;

(пожалуйста, сделайте резервную копию и попробуйте сначала исправить .pyc файлы)

0 голосов
/ 25 мая 2010

Это намного эффективнее, чем выше.

find {directory-of-.pyc-files} -name "*.pyc" -print0 | xargs -0 rm -rf

где {directory-of-.pyc-files} - это каталог, содержащий скомпилированные файлы python.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...