当前位置: 首页 > 面试题库 >

Python-什么是错误的幻数错误?

汪翰墨
2023-03-14
问题内容

什么是python中的“错误的魔术数字” ImportError,如何解决?

我只能在网上找到的唯一东西表明,这是由于编译.py-> .pyc文件,然后尝试将其与错误版本的python一起使用而引起的。但是,就我而言,该文件似乎有时可以很好地导入,而其他时候则不能,并且我不确定为什么。

python在回溯中提供的信息并不是特别有用(这就是为什么我在这里询问…的原因),但在这里是有帮助的:

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

问题答案:

幻数来自UNIX类型的系统,其中文件的前几个字节包含一个指示文件类型的标记。

Python pyc在创建文件时会将类似的标记放入其文件中。

然后,python解释器会在加载时确保此数字正确。

任何损坏此幻数的东西都会引起你的问题。这包括编辑pyc文件或尝试pyc从解释器以外的其他版本的python(通常更高版本)运行。

如果它们是你的 pyc文件,只需删除它们,然后让解释器重新编译py文件。在UNIX类型的系统上,这可能很简单:

rm *.pyc

要么:

find . -name '*.pyc' -delete

如果它们不是你的py文件,则必须获取文件以进行重新编译,或者必须具有可以pyc使用该特定魔术值运行文件的解释器。

一件事可能导致间歇性。该pyc是造成该问题可能只在一定条件下进口。有时不太可能导入。导入失败时,你应该检查实际的完整堆栈跟踪吗?

顺便说一句,我所有2.5.1(r251:54863) pyc文件的第一个单词是62131,2.6.1(r261:67517)62161。完整的幻数列表可在中找到Python/import.c,为完整起见,请在此处复制(截至发布答案时为最新,此后可能已更改):

1.5:   20121
1.5.1: 20121
1.5.2: 20121
1.6:   50428
2.0:   50823
2.0.1: 50823
2.1:   60202
2.1.1: 60202
2.1.2: 60202
2.2:   60717
2.3a0: 62011
2.3a0: 62021
2.3a0: 62011
2.4a0: 62041
2.4a3: 62051
2.4b1: 62061
2.5a0: 62071
2.5a0: 62081
2.5a0: 62091
2.5a0: 62092
2.5b3: 62101
2.5b3: 62111
2.5c1: 62121
2.5c2: 62131
2.6a0: 62151
2.6a1: 62161
2.7a0: 62171


 类似资料:
  • 问题内容: 什么是python中的“错误魔术数字” ImportError,如何解决? 我在网上可以找到的唯一东西表明,这是由于编译.py-> .pyc文件,然后尝试将其与错误版本的python一起使用而引起的。但是,就我而言,该文件有时可以很好地导入,而其他时候则不能,并且我不确定为什么。 python在回溯中提供的信息不是特别有用(这就是为什么我在这里询问…的原因),但是在这里它是有帮助的:

  • Listener是回调的活动引用。 问题就是这堂课: 当我在onCreate方法中收到包裹时:

  • 本文向大家介绍什么是错误检测?,包括了什么是错误检测?的使用技巧和注意事项,需要的朋友参考一下 当数据从一台计算机共享到另一台计算机时,系统不会保护该计算机接收的信息是否实际上是另一台计算机传输的数据。错误是当在接收器端接收到的消息与发送的消息不可互换时。 错误类型 以下是错误的类型- 单位错误 当仅将数据包中的单个位从1更改为0或从0更改为1时,会发生这些错误。这些类型的错误最有可能在数据的并行

  • 问题内容: 注意到今天在我们的代码库中有一行代码,我认为肯定会因语法错误而使构建失败,但是测试通过了,显然它实际上是有效的python(在2.x和3中)。 条件表达式有时不需要空格: 如果LHS是变量,则不起作用: 但是它似乎仍然可以与其他类型的文字一起使用: 这是怎么回事,出于某种原因,它是否有意成为语法的一部分?这个奇怪的怪癖是已知/记录的行为吗? 问题答案: 令牌之间的空白 除逻辑行的开头或

  • 问题内容: 当我阅读时:http : //golang.org/doc/effective_go.html#errors 我发现了这样一行:在这种情况下: Go 到底是什么? 问题答案: 返回错误作为第二个返回值。错误本身是一个接口 。碰巧具有方法的任何数据类型都将实现该接口并可以进行分配。 在大多数情况下,仅打印错误就足够了,但是在此示例中,您想显式处理(设备上不留空间)。该包返回在这种情况下,

  • 本文向大家介绍什么是错误优先的回调函数?相关面试题,主要包含被问及什么是错误优先的回调函数?时的应答技巧和注意事项,需要的朋友参考一下 错误优先的回调函数用于传递错误和数据。第一个参数始终应该是一个错误对象, 用于检查程序是否发生了错误。其余的参数用于传递数据。例如:   解析:这个题目的主要作用在于检查被面试者对于Node中异步操作的一些基本知识的掌握。