You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python3.9导入cryptography.fernet模块报ValueError问题排查

问题根因

这个报错和cryptography库没有任何关系,重装依赖属于无效操作。
报错触发点在Python加载、编译你编写的测试脚本的阶段,此时代码还没执行到导入模块的逻辑,解释器读到了源码里的\0空字节,就会直接抛出ValueError: source code string cannot contain null bytes。

排查与解决方案

按优先级从高到低依次排查即可:

  • 优先校验你的测试脚本文件本身
    绝大多数这类问题都是源码文件被插入了不可见空字节导致的,常见诱因包括从网页/聊天窗口复制代码带了隐藏字符、文件保存时编码异常、文件被损坏。直接新建一个空白.py文件,手动逐字符敲入测试代码,全程不要复制粘贴,保存后重新运行,绝大多数场景下可以直接解决问题。
    如果要定位原文件的空字节位置,可以运行以下检测代码:
    # 把文件名替换成你自己的测试脚本路径
    with open("test.py", "rb") as f:
        data = f.read()
        if b"\x00" in data:
            print(f"检测到空字节,偏移位置:{data.find(b'\x00')}")
    
  • 修复VS Code侧的配置与缓存问题
    1. 关闭VS Code,删除项目目录下的.vscode文件夹、以及所有__pycache__缓存目录,重新打开VS Code加载项目后重试
    2. 查看VS Code右下角的文件编码标识,确认当前脚本保存为UTF-8编码,不要使用UTF-16、带BOM的异常编码,若编码错误点击右下角编码选项,选择「以UTF-8编码重新保存」即可
    3. 确认VS Code选中的Python解释器为你正常安装的Python3.9路径,不要选到损坏的虚拟环境、被篡改的运行时。如果命令行下直接运行脚本正常,仅VS Code调试时报错,直接卸载重装VS Code的Python扩展即可——你贴的报错栈里涉及的debugpy是该扩展自带的调试组件,扩展文件损坏也会触发同类报错
  • 排查系统层异常
    如果以上操作都无效,检查存放代码的磁盘是否存在坏道、是否有安全软件篡改了本地文件,可以把测试脚本移动到其他磁盘分区的空目录下重新运行测试。

内容的提问来源于stack exchange,提问作者Ryder R

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 03:12:23