From Python 十亿次相对导入 https://stackoverflow.com/questions/14132789/python-relative-imports-for-the-billionth-time:
- For a
from .. import
为了工作,模块的名称必须至少包含与模块名称中的点一样多的点。import
陈述。
- ...如果您以交互方式运行解释器...该交互式会话的名称是
__main__
- 因此,您不能直接从交互式会话中进行相对导入
我喜欢在编写生产代码之前使用交互式 Jupyter Notebook 会话来探索数据和测试模块。为了让事情变得清晰易懂,让队友可以理解,我喜欢将笔记本放在一个interactive
包位于我正在测试的包和模块旁边。
package/
__init__.py
subpackage1/
__init__.py
moduleX.py
moduleY.py
moduleZ.py
subpackage2/
__init__.py
moduleZ.py
interactive/
__init__.py
my_notebook.ipynb
在互动会议期间interactive.my_notebook.ipynb
,你将如何导入其他模块,例如subpackage1.moduleX
and subpackage2.moduleZ
?
我目前使用的解决方案是将父包附加到sys.path
.
import sys
sys.path.append("/Users/.../package/")
import subpackage1.moduleX
import subpackage2.moduleZ
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)