jupyter notebook python3路径_使用python3从位于另一个目录中的模块导入本地函数,并在jupyter笔记本中使用相对导入...

我有一个类似于下面的目录结构meta_project

project1

__init__.py

lib

module.py

__init__.py

notebook_folder

notebook.jpynb

在notebook.jpynb中工作时,如果尝试使用相对导入访问module.py中的函数function(),则使用:from ..project1.lib.module import function

我得到以下错误SystemError Traceback (most recent call last)

in ()

----> 1 from ..project1.lib.module import function

SystemError: Parent module '' not loaded, cannot perform relative import

有什么方法可以使用相对导入来实现这一点吗?

注意,笔记本服务器是在meta_project目录级别实例化的,因此它应该可以访问这些文件中的信息。

另外,请注意,至少最初的目的project1没有被认为是一个模块,因此没有__init__.py文件,它只是一个文件系统目录。如果问题的解决方案需要将其视为一个模块,并包含一个__init__.py文件(甚至是一个空白文件),那就可以了,但这样做还不足以解决问题。

我在机器和相对导入之间共享此目录允许我在任何地方使用相同的代码,&我经常使用笔记本进行快速原型设计,因此,涉及到将绝对路径组合在一起的建议不太可能有帮助。

Edit:这与Relative imports in Python 3不同,后者通常讨论Python 3中的相对导入,特别是从包目录中运行脚本。这与jupyter笔记本中的工作有关,该笔记本试图调用另一个目录中的本地模块中的函数,该目录具有不同的常规和特定方面。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值