簡體   English   中英

從具有相同名稱的文件夾導入會在 PyCharm 中給出 ImportError

[英]Importing from folders with the same name gives ImportError in PyCharm

鑒於以下項目結構:

test/
 data/
   __init__.py
 a/
   data/
     __init__.py
   main.py
 __init__.py

test/data/__init__.py

from pathlib import Path
DATA_DIR = Path(__file__).parent

main.py

from data import DATA_DIR

if __name__ == "__main__":
    print(DATA_DIR)

從終端運行時,它工作正常。 從 PyCharm 運行時,出現以下錯誤:

Traceback (most recent call last):
File "/Users/<USER>/code/test/a/main.py", line 1, in <module>
from data import DATA_DIR
ImportError: cannot import name 'DATA_DIR' from 'data' 
(/Users/<USER>/code/test/a/data/__init__.py)

有沒有人找到解決這個問題的方法?

解決方案

在 PyCharms Choose target to run configuration 中,將Script path更改為Module name ,它應該會按預期工作。

test不在已安裝的模塊中。 它需要是sys.path知道的位置。

https://docs.python.org/3/library/sys_path_init.html#sys-path-init可能會為您提供將test添加到sys.path所需的信息。

test添加到已安裝的模塊后,您可能還必須刪除test/a ,否則from data import...將在兩個位置之間發生沖突。 它們都具有相同的名稱,並且在兩個目錄都可訪問的情況下,只能看到列表中的第一個目錄。 sys.path中值的順序很重要。

暫無
暫無

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

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