【问题标题】:I need help setting up my relative imports in python我需要帮助在 python 中设置我的相对导入
【发布时间】:2021-07-18 21:31:41
【问题描述】:

我花了很多时间尝试有关堆栈溢出的不同答案,以至于我不再知道使用相对导入的正确方法到底是什么。请记住,此导入应在 localhost 和服务器上工作

我的项目结构

初始化.py

尝试将 main.py 中的 Authenticate 类导入 ImportError:尝试在没有已知父包的情况下进行相对导入

请给出解释或在同一目录中导入工作示例的链接。

【问题讨论】:

    标签: python jupyter-notebook


    【解决方案1】:

    您正在尝试导入 Jupyter Notebook,而不是 class。这就是您获得ImportError 的原因。

    看看这个:ipynb import another ipynb file

    如果您不想从 Jupyter Notebook 导入,而是从指定 路径 中的模块导入,您可以试试这个:

    import importlib.util
    spec = importlib.util.spec_from_file_location("module.name", "/path/to/file.py")
    foo = importlib.util.module_from_spec(spec)
    spec.loader.exec_module(foo)
    foo.MyClass()
    

    你也可以使用相对导入:

    from foo import bar
    

    另一种选择是添加sys.path 的路径(通过使用导入)以简化从单个包中导入多个模块时的操作:

    import sys
    # my_package dir contains mod_one.py, mod_two.py and mod_three.py
    sys.path.append('/foo/bar/my_package')
    
    from mod_one import foo
    from mod_two import bar
    from mod_three import foobar
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-28
      • 2021-03-19
      • 2022-01-04
      • 1970-01-01
      • 1970-01-01
      • 2016-10-06
      相关资源
      最近更新 更多