"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Por que estou recebendo um ImportError \"Número mágico incorreto\" em Python?

Por que estou recebendo um ImportError \"Número mágico incorreto\" em Python?

Publicado em 2024-11-06
Navegar:685

 Why am I getting a \

Número mágico ruim: entendendo o erro de importação

Ao trabalhar com Python, encontrar o ImportError "Número mágico ruim" pode ser frustrante. Este erro indica um arquivo pyc corrompido, a versão compilada do seu script Python, o que leva a uma incompatibilidade com o interpretador Python.

Compreendendo o número mágico

No UNIX -type, os arquivos começam com um marcador especial, conhecido como número mágico, indicando o tipo de arquivo. Python incorpora um conceito semelhante em seus arquivos pyc quando criados, garantindo a verificação durante o carregamento.

Causas do erro

O erro "Bad magic number" surge quando a mágica número em um arquivo pyc está danificado. Isso pode ocorrer devido a:

  • Editar o arquivo pyc diretamente
  • Executar o arquivo pyc com uma versão Python diferente da qual foi compilado
  • Corrupção de arquivo ou sistema erros

Resolvendo o problema

Para resolver esse erro, siga estas etapas:

  • Exclua os arquivos pyc corrompidos usando rm *.pyc.
  • Se os arquivos pyc pertencerem a módulos externos, você precisará entrar em contato com o desenvolvedor dos arquivos py e recompilá-los.

Problemas de importação intermitente

Em casos raros, o erro de importação pode ocorrer de forma intermitente. Isso pode ser devido ao arquivo pyc problemático ser importado apenas sob condições específicas. Examine o rastreamento completo da pilha quando o erro ocorre para obter mais detalhes.

Valores de números mágicos

A primeira palavra de um arquivo pyc representa o número mágico. Seu valor depende da versão do Python:

Python Version | Magic Number
--------------|----------------
2.5.1(r251)    | 62131
2.6.1(r261)    | 62161

Uma lista completa de valores de números mágicos pode ser encontrada em Python/import.c para sua referência.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3