gpt4 book ai didi

python - 如何将 jupyter notebook 目录中的模块导入到较低目录的 notebook 中?

转载 作者:IT老高 更新时间:2023-10-28 20:32:35 25 4
gpt4 key购买 nike

我使用 jupyter notebook 进行数据分析已经有一段时间了。我想在我的 jupyter notebook 目录中开发一个模块,并能够将该新模块导入到笔记本中。我的jupyter notebook文件目录可以表示如下;

Jupyter notebooks\

notebook1.ipynb

new_module\
__init__.py
newfunction.py

currentnotebooks\
notebook2.ipynb

当在 notebook1.ipynb 中使用 import new_module 时,它可以工作,但是当我在 notebook2.ipynb 中尝试相同的命令时,我得到以下 ImportError: No module named 'new_module' .两个明显的解决方案是 A) 将 new_module 移动到当前笔记本目录或 B) 将 notebook2.ipynb 移动到与 new_module 相同的级别。我根本不想弄乱文件结构。这可能吗?

最佳答案

您需要确保 new_module 的父目录在您的 python 路径中。对于比 new_module 低一级的笔记本,此代码可以解决问题:

import os
import sys
nb_dir = os.path.split(os.getcwd())[0]
if nb_dir not in sys.path:
sys.path.append(nb_dir)

如果您在目录层次结构中更靠后,则需要调整 nb_dir 的设置方式,仅此而已。您应该Jupyter notebooks 中为笔记本运行此代码,因为它会将该目录的父目录添加到 python 路径,这可能是不可取的。

notebook1 导入的原因是 sys.path 包含 ''(空字符串),它远离正在运行的解释器的当前目录(内核, 在这种情况下)。谷歌搜索 explain python path 可以找到关于 python 如何使用 PYTHONPATH(又名 sys.path)的几个很好的解释。

关于python - 如何将 jupyter notebook 目录中的模块导入到较低目录的 notebook 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39299838/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com