我有以下structure:-
Test
├── package1
│ └── script1.py
│ └── __init__.py
├── package2
└── script2.py
└── __init__.py
我想從script2.py導入script1.py,并擁有tried:-
from package1.script1 import *
我正在從linux終端運行腳本python3script2.py,但這似乎不起作用,我得到ModuleNotFoundError:沒有名為“package1”的模塊。我該怎么解決這個問題?
理想情況下,您應該從頂級包(導入和/或運行啟動整個應用程序的代碼)運行python腳本,如下所示:
然后運行
python3 run.py
導入
from package1.script1 import *
時,您對Python說的是從運行主腳本的路徑搜索包。因此,它假設您正在從package2
搜索package1
。如果將package1
放在package2
內并運行python3 script2.py
,它也會工作。如果您仍然希望使用相同的目錄結構從script2運行,那么您必須在
Test
目錄中運行python3 package2/script2.py
,或者修改python路徑。