[英]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.