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

Django运行报错ValueError: source code string cannot contain null bytes问题咨询

错误触发原因

核心是Python解析代码时检测到文件中混入了\x00空字节字符,导致无法正常解析导入的模块。结合你描述的场景,常见触发原因有3类:

  • 项目文件传输损坏:你将项目拷贝/传输给朋友的过程中,传输工具、存储介质异常,或者Git提交/拉取时出现编码错误,导致项目内的.py文件或者依赖包文件混入了隐藏空字符
  • 朋友本地Python环境损坏:他设备上的Python安装目录下的标准库文件受损,本次报错指向的wsgiref.simple_server是Python内置标准库,若安装时解压出错、杀毒软件误改了库文件内容,就会出现该问题
  • 编码兼容问题:你本地创建项目时部分.py文件使用了带BOM的UTF-8编码,或者编辑过程中混入了不可见控制字符,你本地编辑器兼容可正常读取,朋友的环境无法兼容解析
解决方案

按优先级依次排查即可:

  1. 先排查Python环境是否损坏
    让你朋友在本地新建一个空白Django项目,执行启动命令测试:
  • 如果新建项目也报同样错误,直接修复他的Python环境:控制面板找到对应版本Python,选择「更改」-「修复」,或者卸载后重新安装对应版本Python即可
  • 如果新建项目可以正常启动,说明是你传输的项目文件存在问题,走下一步排查
  1. 重新传输项目文件
    不要零散拷贝单个文件,将你本地正常运行的项目完整打包为ZIP压缩包后再发送给朋友,让他解压后重新启动,避免零散传输导致的文件损坏。如果是用Git同步项目,让他删除本地仓库后重新执行git clone拉取最新代码即可。

  2. 扫描修复项目内带空字符的文件
    如果上述操作都无效,可以运行以下脚本扫描项目内所有.py文件,定位并清除空字符:

import os

# 替换为你朋友本地的项目根目录路径
project_root = "C:\\xxx\\你的项目根目录"

for root, dirs, files in os.walk(project_root):
    for file in files:
        if not file.endswith(".py"):
            continue
        file_path = os.path.join(root, file)
        with open(file_path, "rb") as f:
            content = f.read()
        if b"\x00" in content:
            print(f"找到损坏文件:{file_path}")
            # 确认要修复的话取消下面代码的注释,操作前建议先备份项目
            # new_content = content.replace(b"\x00", b"")
            # with open(file_path, "wb") as f:
            #     f.write(new_content)

内容的提问来源于stack exchange,提问作者Simon Cankov

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 18:54:00