亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

從不同的文件夾級別導入一個類 - Python

從不同的文件夾級別導入一個類 - Python

小怪獸愛吃肉 2022-07-26 21:46:39
我正在編寫一個序列到序列模型,并且我有以下目錄結構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



查看完整回答
反對 回復 2022-07-26
?
慕俠2389804

TA貢獻1719條經驗 獲得超6個贊

如果您使用任何 IDE(例如 pycharm),您需要將(我的項目)設置為源引導目錄,否則您需要在 settings.py 中檢查您的 BASE_DIR

然后你就可以導入模型了。

從models.Encoder導入BiDirectionalEncoder

是的,如果您想從其他環境訪問模塊,下面是訪問和共享模塊方式的鏈接。

python模塊:-導入(訪問)創建和共享

希望這能解決您的問題。


查看完整回答
反對 回復 2022-07-26
  • 2 回答
  • 0 關注
  • 128 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號