Python dis 模块在 Python 3 中不起作用

dj_tech


您好,
我有一个 Python 源代码文件“test.py”,其内容是print("Hello World") .
当我尝试使用python3.8上集成的py_compile模块将其编译为字节码时,操作成功,可以运行.pyc文件。
但是,如果我尝试使用 python3.8 上的集成 dis 模块(带有python3.8 -m dis {PATH}读取内容,CPython 会给我这个错误:

Traceback (most recent call last):
 File "/usr/lib/python3.8/runpy.py", line 194, in _run_module_as_main
   return _run_code(code, main_globals, None,
 File "/usr/lib/python3.8/runpy.py", line 87, in _run_code
   exec(code, run_globals)
 File "/usr/lib/python3.8/dis.py", line 553, in <module>
   _test()`
 File "/usr/lib/python3.8/dis.py", line 549, in _test
   code = compile(source, args.infile.name, "exec")
ValueError: source code string cannot contain null bytes 

源代码的路径是/home/{USER}/test.py C:\Users\{USER}\test.py 在Windows下)。
.pyc 文件的路径是/home/{USER}/__pycache__/test.cpython-38.pyc C:\Users\{USER}\__pycache__\test.cpython-38.pyc 在 Windows 下)。

我在这些情况下发现了这个问题:

  • Ubuntu 中的 Python 3.8 和 Python 3.9(在 WSL1 下)
  • Windows 10 下的 Python 3.8
  • Linux (Ubuntu 21.04) 下的 Python 3.9。

在 WSL 和 Linux 下,我在实验前更新了所有包。

预先感谢您的每一个回复。

大卫·K·赫斯

如果查看 dis 模块的源代码:

https://github.com/python/cpython/blob/3.8/Lib/dis.py#L540

你可以看到 -m 调用正在寻找一个 .py 源文件来编译,然后一步反汇编。它不支持直接给它 .pyc 。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Python计划模块在Python 3中不起作用

导入后,模块who在Python 3中也不起作用

pwntools Python模块在python2中不起作用,但在python3中起作用

为什么“请求”模块超时在python3中不起作用?

For 循环在 python 3 中不起作用

迭代在 Python 中的 CSV 模块的“打开”中不起作用

Python中的软件包和模块不起作用

Duckduckgo 模块在 python 3.4.4 中不起作用

导入的 Python 模块在 VSCode 中不起作用

导入python pydriller模块在venv中不起作用

从新写入的文件读取的Python在模块中不起作用

警告模块在Python 2.7中不起作用?

代码在带有乌龟模块的 Python 中不起作用

python dis输出中的>>是什么?

Python 3:URLlib模块基本功能不起作用

在raspbian jessie中安装的python模块在python脚本中不起作用

unicode 方法在 Python3 中不起作用

日志在 Python 3 中的 Flask 下不起作用

Python 3中的相对导入不起作用

为什么相对导入在Python 3中不起作用?

HyperVolume函数在Python 3中不起作用

TreeView在Python Gtk3中不起作用

python3-cd在反向shell中不起作用

Python:为什么缺陷查找器模块在cmd Windows中不起作用?

为什么这种使用 Python 中的 Turtle 模块检测按键的方法不起作用?

动态模块导入在python中不起作用-为什么不呢?

Python“键盘”模块以非root身份工作但在sudo(linux)中不起作用

嵌套如果在 python 中不起作用并且数学模块有问题

为什么 Python dis 模块不能反汇编这个 .pyc 文件?