[英]Import module in another directory from a “parallel” sub-directory
我希望有一個看起來像這樣的層次結構(它必須看起來像這樣)
main_folder\
main.py
domain_sub_directory\
__init__.py
domain.py
ui_sub_direcotory\
__init__.py
menu.py
我需要激活ui.py frome main.py,然后從menu.py訪問domain.py. 我怎樣才能做到這一點 ?
我主要做了這個:
import ui_sub_directory.ui
這在ui中:
import domain_sub_directory.domain
但是UI模塊沒有看到域模塊。
我究竟做錯了什么 ?
BTW我還需要導入我正在使用的課程嗎? 這和之間有什么區別:
from x import y
?
*編輯*為那些不理解我想從中導入的人:
folder1 /folder2 /folder3 /module1
我想導入這個:
folder1 /folder2 /module2
你問了import語句的區別。 它的部分問題是對象將在其下導入的命名空間,也是限制導入的確切代碼量的一種方法。
import os
from os import path
os和os.path都是模塊。 第一個導入整個os模塊及其所有子模塊。 這可能超出您的需要,對於大型庫可能不需要開銷。 雖然您仍然可以通過os.path
訪問路徑
第二種形式是有選擇地僅導入路徑模塊的方法。 此外,它不是在os
命名空間下進入您的代碼,而是現在作為path
存在於根級別。
雖然此鏈接從父目錄導入腳本確實告訴您需要知道的一切,但這里有一些更具體的信息:
# this will make your package available on your pythonpath
sys.path.append("/path/to/main_folder")
然后你的各種腳本可以引用所有相對於main_folder下的其他模塊,例如:
from ui_sub_direcotory import menu
from domain_sub_directory import domain
import main
這些都是包內的有效導入。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.