Python 模块中的新函数不是';见';伊皮顿笔记本

Python 模块中的新函数不是';见';伊皮顿笔记本,python,function,module,jupyter-notebook,Python,Function,Module,Jupyter Notebook,我最近买了一台新电脑(我的第一台Mac电脑,我以前有一台PC)。我有一个充满数据分析功能的模块,用于我的研究,直到现在我还没有理由编辑该模块。但突然间,当我在Jupyter笔记本中导入模块时,新功能没有被“看到” import altdata as alt alt.retrieve_data_from_umiami_latlonam('GISS','AQUA', 'ts') 这会引发以下错误: --------------------------------------------------

我最近买了一台新电脑(我的第一台Mac电脑,我以前有一台PC)。我有一个充满数据分析功能的模块,用于我的研究,直到现在我还没有理由编辑该模块。但突然间,当我在Jupyter笔记本中导入模块时,新功能没有被“看到”

import altdata as alt
alt.retrieve_data_from_umiami_latlonam('GISS','AQUA', 'ts')
这会引发以下错误:

-----------------------------------------------------------------------
----
AttributeError                            Traceback (most recent call 
last)
<ipython-input-3-9ccbc97fd6b8> in <module>()
1 
 ----> 2 alt.retrieve_data_from_umiami_latlonam('GISS','AQUA', 'ts')

AttributeError: 'module' object has no attribute 'retrieve_data_from_umiami_latlonam'

我得到了错误。有什么想法吗?

在启动笔记本并首次在笔记本中导入模块后,您是否修改了模块?在这种情况下,您可以尝试重新加载它,例如<代码>导入库重新加载(模块)。如果这不起作用,请尝试重新启动笔记本电脑并重新导入模块,以检查这是否解决了问题。

我已重新启动内核,但它没有任何作用。我在一本新笔记本上试过。此外,我实际上关闭了所有笔记本电脑,重新启动了Jupyter,这似乎奏效了。如果有人能很好地解释为什么会发生这种情况,我将不胜感激;这在我的电脑上从未发生过,而且非常令人厌烦。如果会话的目录/路径中没有模块名为
altdata.py
,那么我会定期编辑模块,然后它会从PYTHON路径中的某个安装目录导入该模块。可能是您做了更改而忘记更新安装?您可以通过
altdata从导入位置进行检查。导入
altdata
后,我通常每次都会明确告诉它在哪里查看。我不是一个很喜欢电脑科学的人,所以我通常不会认真思考这些事情,直到它们崩溃。我会把这个工具放在我的后口袋里,不过将来你可能会在PYTHON路径中列出多个路径中的模块。将它添加到路径的开头,而不是
sys.path.append(r'/mymodules')
应该可以解决问题。例如,
sys.path.insert(0,r'/mymodules')
不完全正确;我更改了路径名,它修复了它
sys.path.append(“/mymodules”)
。谢谢你的帮助,很高兴它现在起作用了。一般来说,我仍然建议使用
sys.path.insert(0,/some_module')
而不是
append
,因为Python会按顺序扫描sys.path列表中的包,如果它在前面列出的路径中找到包,它就不会使用您附加的路径
import sys
sys.path.append(r'/mymodules')
import altdata as alt