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