2013-12-07 43 views
0

說我們有一些包幾個子包。 但是有一個分裝X是完全別的地方在文件樹。 我們還可以導入X就好像它是分裝? (即,使得X可以參考使用相對進口頂級包)如何從python路徑中導入一個子包?

+1

相對導入只能在包內工作。包由它們的目錄結構定義。所以,如果子包X不在包Y的目錄中,那麼子包X並不是真正的子包... – mgilson

回答

0

假設你有__init__.py文件的目錄裏面,你可以去簡單的方法,包路徑添加到SYS路徑,即:

import sys 
sys.path.append(path/to/package) 

import module 

問題在於它只會在文件系統保持一致時才起作用。這似乎運作良好,無論目錄結構的另一種方式是在這裏找到答案:Import a module from a relative path

編輯

我知道我不明白你的問題,因爲它是問。一個子包X不是真的是一個子包如果它不在Y包裏面,所以據我所知你不能把它作爲子包導入

+0

這樣你就不會將它作爲子包導入:check'print(__ name __)'返回當前名稱,而不是所有的父包。 –