簡體   English   中英

Python 3 - ImportError:無法導入名稱

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

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