来自Python relative imports for the billionth time:
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
和subpackage2.moduleZ
?
答案 0 :(得分:2)
我目前使用的解决方案是将父包附加到sys.path
。
import sys
sys.path.append("/Users/.../package/")
import subpackage1.moduleX
import subpackage2.moduleZ