簡體   English   中英

帶有絕對和相對導入的 ImportError

[英]ImportError with absolute and relative imports

使用非常簡單的文件結構導入時遇到問題。

我的文件結構如下所示:

project/
  ...
  project.py
  helper.py
  __init__.py
  ...

在 project.py 中是 class 我試圖在助手中導入

#project.py

class MyAPIOne():
...

class MyAPITwo():
...

#helper.py

import MyAPIOne

if __name__ == "__main__":
  api = MyApiOne()
  ...

使用python3 helper.py運行時:

如果我保留絕對導入import MyAPIOne我收到ModuleNotFoundError: No module named 'MyAPIOne'

如果我將其更改為相對導入from. import MyAPIOne from. import MyAPIOne我收到ImportError: cannot import name 'MyAPIOne'

我還嘗試將各種目錄附加到sys.path中,但沒有成功。

如果您從project文件夾運行此腳本,則可以通過以下方式更改導入: from project import MyAPIOne 此外,您可以將此文件夾添加到PYTHONPATH環境變量中。

更新:要向 PYTHONPATH 添加一些文件夾,您可以運行

export PYTHONPATH="${PYTHONPATH}:/my/other/path"

主文件可以導入所有文件,但主文件不能被其他文件導入。

一旦用__name__ = "__main__"提到文件,它就會成為主文件。 所以 helper.py 作為主文件。 它不能被導入。


暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM