[英]Import subfolder file from Jupyter Notebook
使用这样的文件夹结构:
~/
+-- some_module/
| +-- subfolder/
| | +-- submodule.py
| +-- helpers.py
| +-- api.py
+-- notebook.ipynb
这是api.py
的内容:
from subfolder.submodule import submodule_fun
def print_something(string):
print(submodule_fun(string))
# ...
if __name__ == '__main__':
run()
和submodule.py
:
from helpers import helper_fun
def submodule_fun(string):
stuff = helper_fun(string)
return stuff
从命令行运行python api.py
时,这非常python api.py
。 submodule.py
文件只是使用helpers.py
一些函数, helpers.py
任何戏剧性。
不过,我也希望能够使用submodule.py
从notebook.ipynb
其居住之外some_module
。 当我在这个笔记本中添加以下几行时:
from some_module.subfolder import submodule
我收到以下错误:
~/some_module/subfolder/submodule.py in <module>
---> from helpers import helper_fun
ModuleNotFoundError: No module named 'helpers'
我尝试使用setuptools
所有some_module
到一个适当的模块中,但我setuptools
了奇怪的错误,显然是因为该模块并不直接存在于存储库的根目录中。
在不借助包装some_module
,有没有办法在这种情况下从notebook.ipynb
访问submodule.py
?
尝试通过操作系统或以编程方式将some_module
添加到您的 PATH 或 PYTHONPATH 环境变量中(如下所示)
import sys
import os
abspath = r"c:\your\path\to\some_module"
sys.path.append(os.path.abspath(abspath ))
from some_module.subfolder import submodule
作为打包的替代方案,您可以使用poetry
来管理您的依赖项、虚拟环境,它会将您的项目安装到环境中,而无需实际生成包。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.