虽然re在模块和主代码中导入,但未定义名称re

2024-09-29 02:19:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在为我的硕士论文写一本Jupyter笔记本,我想保持它干净。我使用很多函数为数据组分配类别。 因此,我决定将所有这些函数放在functions.py模块中,并在笔记本开始时导入该模块。我的笔记本具有以下导入内容:

import sys
sys.path.append('../src/') # ugly hack to be able to import the functions module
import re
import numpy as np
import pandas as pd
import seaborn as sns
import functions as fn

我的一个函数使用“re”模块将字符串与正则表达式匹配。当我调用上述函数时,我得到了NameError: ("name 're' is not defined", 'occurred at index 0'),所以我想我必须在functions.py文件的开头import re。这没有改变任何事情。所以我甚至尝试将import re放在函数体中,但它也不起作用

我完全不知道为什么re不起作用,尽管我试着到处导入它

注意:当我在笔记本上定义和使用函数时,我的函数工作正常,因此我确信这不是我函数中的错误


Tags: 模块to数据函数pyimportre内容
2条回答

在笔记本中,您可以使用importlib库并调用importlib.reload(module),而不是重新启动内核

解决了我自己的问题,答案非常简单:Jupyter不考虑对导入模块的任何编辑,即使您重新导入它。如果您对模块进行任何更改,您必须关闭内核并重新启动它,再次导入,编辑将正常工作

在我的特殊情况下,我已经在functions.py中添加了import re,但是Jupyter在我重新启动内核之前没有考虑到这一点

相关问题 更多 >