我正在編寫一個序列到序列模型,并且我有以下目錄結構MyProject/ models/ - __init__.py - Encoder.py train/ - __init__.py - Train.py在 Train.py 中,盡管嘗試使用以下語法,但我無法從 Encoder.py 導入類 BiDirectionalEncoderfrom models.Encoder import BiDirectionalEncoder 對于上面的行,我收到錯誤“ModuleNotFoundError: No module named 'models'”from ..models.Encoder import BiDirectionalEncoder對于最后一行,我收到錯誤“ImportError:嘗試使用沒有已知父包的相對導入”有沒有辦法解決這個問題?我不想使用任何 sys.path.append() 來強制添加路徑我在 Spyder 4.0.1 中使用 Python 3.7.6 謝謝!
2 回答

哈士奇WWW
TA貢獻1799條經驗 獲得超6個贊
在同一個包中,您可以進行相對導入,但由于您要退出當前包,因此需要進行絕對導入。
from MyProject.models.Encoder import BiDirectionalEncoder

慕俠2389804
TA貢獻1719條經驗 獲得超6個贊
如果您使用任何 IDE(例如 pycharm),您需要將(我的項目)設置為源引導目錄,否則您需要在 settings.py 中檢查您的 BASE_DIR
然后你就可以導入模型了。
從models.Encoder導入BiDirectionalEncoder
是的,如果您想從其他環境訪問模塊,下面是訪問和共享模塊方式的鏈接。
希望這能解決您的問題。
添加回答
舉報
0/150
提交
取消