【问题标题】:Python Jupyter - Relative path between packagesPython Jupyter - 包之间的相对路径
【发布时间】:2018-09-08 09:39:34
【问题描述】:

关于python相对路径有很多问题,但我没有找到以下情况:

src/
    __init__.py
    notebook.ipynb
A/
    __init__.py
    foo.py
B/
    __init__.py
    bar.py

我正在尝试在 notebook.ipynb 中导入:

from A.foo import Foo

要导入子目录/子包:

foo.py

from ..B.bar import Bar

我收到一个 ValueError: Attempted relative import beyond toplevel package。

如果我只有几个文件,我会尝试使用 sys 和 os 破解解决方案。但是,我在更深的目录中得到了很多,并且正在寻找一种更优雅的方式。有什么想法吗?

【问题讨论】:

    标签: python jupyter-notebook relative-path


    【解决方案1】:

    我看到你说你正在寻找一个比使用 sys 更优雅的解决方案,但是使用 sys 为这个示例提供了一个解决方案。

    foo.py:

    import sys
    sys.path.append('..')
    
    from A.foo import foo
    

    notebook.ipynb

    import sys
    sys.path.append('..')
    
    from B.bar import Bar
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-06-17
      • 1970-01-01
      • 1970-01-01
      • 2016-09-03
      • 2017-03-29
      • 2011-08-08
      • 2014-03-30
      • 2011-11-02
      相关资源
      最近更新 更多