【问题标题】:ImportError: attempted relative import with no known parent package despite having __init__.pyImportError:尽管有 __init__.py,但尝试在没有已知父包的情况下进行相对导入
【发布时间】:2022-06-13 17:53:32
【问题描述】:
D:.
││
├───common
│       selenium_helper.py
│       __init__.py
│
│
├───test
│       test.py
│

我有上面的目录结构,我想将 selenium_helper 导入 test.py 我的 test.py 包含以下简单代码

from ..common.selenium_helper import options

print("hello world")

当我运行 test.py 时出现以下错误。

我浏览了许多 SO 帖子,但仍然无法完成这项工作

Traceback (most recent call last):
  File "test.py", line 1, in <module>
    from ..common.selenium_helper import options
ImportError: attempted relative import with no known parent package

有没有办法在不修改或附加到系统路径的情况下解决此问题

【问题讨论】:

    标签: python-3.x


    【解决方案1】:

    我创建了一个新的 Python 导入库 ultraimport,可以导入文件系统中的任何文件。

    然后您可以在 test.py 中编写:

    import ultraimport
    options = ultraimport('__dir__/../common/selenium_helper.py', 'options')
    

    无论您如何运行代码,它都会起作用。 ultraimport 在内部使用自己的加载器,它不会以任何方式更改或修改 sys.path。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-24
      • 2020-10-13
      • 2020-06-20
      • 2021-10-31
      • 2021-10-20
      • 2021-12-19
      • 2020-11-03
      • 2019-07-31
      相关资源
      最近更新 更多