iva*_*ler 9 python import jupyter-notebook
是的,我知道这是一个经常性的问题,但我仍然找不到令人信服的答案。我什至在https://chrisyeh96.github.io/2017/08/08/definitive-guide-python-imports.html上阅读,但找不到解决方法:
我正在运行包含jupyter(ipython)笔记本的python 3.6项目。我希望笔记本电脑导入一个自定义的本地helpers.py程序包,以后我可能还会在其他来源中使用它。
项目结构类似于:
my_project/
?
??? my_project/
? ??? notebooks/
? ??? a_notebook.ipynb
? ??? __init__.py # suppose to make package `my_project` importable
? ??? helpers.py
?
??? tests/
? ??? helpers_tests.py
?
??? .gitignore
??? LICENSE
??? README.md
??? requirements.txt
??? setup.py
Run Code Online (Sandbox Code Playgroud)
导入helpers笔记本时出现错误:
----> 4 import helpers
ModuleNotFoundError: No module named 'helpers'
Run Code Online (Sandbox Code Playgroud)
我也尝试过from my_project import helpers并且得到相同的错误ModuleNotFoundError: No module named 'my_project'
我终于(并暂时)使用了通常的技巧:
import sys
sys.path.append('..')
import helpers
Run Code Online (Sandbox Code Playgroud)
但它看起来很糟糕,我仍在寻找更好的解决方案
可以通过告诉python在哪里寻找模块sys.path。我有一个这样的项目结构:
project/
?
??? src/
? ??? my_module/
? ??? __init__.py
? ??? helpers.py
??? notebooks/
? ??? a_notebook.ipynb
...
Run Code Online (Sandbox Code Playgroud)
我能够像这样加载模块:
project/
?
??? src/
? ??? my_module/
? ??? __init__.py
? ??? helpers.py
??? notebooks/
? ??? a_notebook.ipynb
...
Run Code Online (Sandbox Code Playgroud)
一个人应该可以从任何地方加载模块。
我认为您需要目录__init__.py中的模块notebooks/。我之前没有真正使用过 Jupyter 笔记本,所以我可能是错的。您可能还需要尝试将导入语句更改为:
import .. helpers
Run Code Online (Sandbox Code Playgroud)
指示导入语句适用于位于 Jupyter Notebook 父目录中的本地包。
| 归档时间: |
|
| 查看次数: |
8647 次 |
| 最近记录: |