[英]Python 3 - ImportError: cannot import name
我有一個文件夾:
python_scripts/test_import/
|-- __init__.py
|-- m1.py
`-- m2.py
m1.py
的內容:
a=3
m2.py
的內容:
from . import m1
print(m1.a)
當我嘗試執行m2.py
時,出現以下錯誤:
# python3 python_scripts/test_import/m2.py
Traceback (most recent call last):
File "python_scripts/test_import/m2.py", line 1, in <module>
from . import m1
ImportError: cannot import name 'm1'
但是,如果我將m2.py
中的導入更改為:
import m1
print(m1.a)
然后我看不到任何錯誤,並且執行結果是預期的:
3
問題:為什么用點的相對導入在這里不起作用?
錯誤:can't import name m1 相對導入使用導入文件的name屬性來確定文件在整個package結構中的位置,但是直接運行python腳本時,模塊的名稱改為main模塊的原始名稱。 這樣就無法識別相對路徑。 因此,為此您不能直接使用它,您的 main.py 需要位於頂部文件中
python_scripts/
|-- main.py :from test_import.m import m2
/test_import/
_init_.py
/m/
|-- __init__.py
|-- m1.py
|-- m2.py
或者如果你堅持這樣做,你必須更改為 from.m1 import *
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.