Python 2.7导入模块时出现NameError: name 'null' is not defined错误如何解决?
问题根源与解决方案
你这是踩了个很容易犯的小失误——你试图导入的mod.py根本不是有效的Python代码文件,而是Jupyter Notebook的JSON格式文件!
为什么会触发这个错误?
看你给出的错误栈,C:\Users\Mayank\mod.py里的内容是:
{ "cell_type": "code", "execution_count": null, ... }
这是Jupyter Notebook(.ipynb格式)的标准JSON结构,完全不是Python代码。当Python解释器读取这个文件时,会把null当成一个变量名,但Python里根本没有null这个关键字(Python用None表示空值),所以直接触发了NameError。
你提供的“类似.py代码示例”其实也是完整的Jupyter Notebook文件内容,不是纯Python代码。这也能解释为什么卸载重装Anaconda没用——问题根本不在Python环境,而是你要导入的文件本身格式完全错了。
快速解决步骤
第一步:修正你的
mod.py文件
打开mod.py,如果里面是带cell_type、execution_count的JSON内容,直接删掉,替换成纯Python代码。比如你想要的简单测试模块:# mod.py print("成功导入mod模块啦!")如果是从Jupyter Notebook导出的文件
别直接修改.ipynb文件的后缀名改成.py,正确操作是:- 打开对应的Jupyter Notebook
- 点击菜单栏的
File > Download as > Python (.py) - 把导出的
.py文件放到你运行代码的同目录下
重新测试导入
做完上面的步骤后,再运行import mod,应该就能正常执行了。
内容的提问来源于stack exchange,提问作者Mayank Seksaria
相关产品推荐
相关产品推荐

