【发布时间】:2019-01-31 08:18:10
【问题描述】:
我想从functions.py 从notebook01.ipynb 导入一个def。
我按照相对路径导入here的文档,研究了this stack overflow post中的答案。
我尝试写from .Modules.functions import fibonacci,(Modules 文件夹前有一个点)我收到以下错误。
ModuleNotFoundError Traceback (most recent call last)
<ipython-input-2-be5f30231faa> in <module>
----> 1 from .Modules.functions import fibonacci
ModuleNotFoundError: No module named '__main__.Modules'; '__main__' is not a package
我尝试在 Modules 文件夹 from ..Modules.functions import fibonacci 之前添加两三个点,然后我得到了错误
ValueError Traceback (most recent call last)
<ipython-input-3-8d1656059c1f> in <module>
----> 1 from ..Modules.functions import fibonacci
ValueError: attempted relative import beyond top-level package
我已按照文档的建议在目录结构的每一级添加了__init__.py 文件]2 如您所见,但一点运气都没有!
我做错了什么?
【问题讨论】:
-
试试
sys.path.append(os.path.abspath(".."))。然后import Modules.functions as functions. -
感谢大家的回复,不知道要不要加系统的绝对路径!如果我把问题分享给一些朋友怎么办,每个人都应该更改代码以包含绝对路径吗?
-
还有,如果用户的权限有限,无法改变路径,会发生什么? (我使用 Windows)
-
我找到了一个很好的解决方法不添加到系统路径 here in this post
标签: python jupyter-notebook jupyter relative-path