[英]import from packages in other levels
我有這個結構,我想從子模塊導入submodule1 function,我該怎么做?
我嘗試了以下結構:
project/
__init__.py
api/
__init__.py
submodule.py
app/
__init__.py
submodule1.py
submodule2.py
__all__ = ['convertor', 'settings']
from . import convertor
from . import settings
我對您的整個文件結構感到困惑,但據我所知,您有一個項目文件夾,您的主腳本位於項目文件夾的一個文件夾中,而您的模塊位於項目文件夾中的一個單獨文件夾中。 如果是這種情況,我不明白為什么您不將main.py
文件與包含模塊的文件夾放在同一目錄中(我只提到以防萬一您可以這樣做,因為它使這要容易得多)但是如果您確定需要文件結構與當前相同,則可以使用以下解決方案:
import sys
from os import path
from pathlib import Path
sys.path.insert(0, path.join(Path(__file__).parent.absolute().parent.absolute(), "app"))
import submodule1
本質上,這獲取文件的路徑,它的父級(它所在的文件夾),然后是父級的父級(項目文件夾)將其添加到sys.path
(您可以使用此列表路徑中的模塊)。 我幾乎 100% 確定有更好、更有效的方法來做到這一點,但由於問題的獨特性,這是我的想法。 我希望它有點幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.