2012-12-07 162 views
1

我試圖導入一個函數,它是在Python包內的模塊中,但是當我嘗試:導入模塊忽略__init__.py

from package.module import some_function 

的Python執行了這個包的__init__.py卻能不會發生。

有沒有辦法導入告訴Python忽略軟件包的__init__.py的函數?

感謝

+1

爲什麼你想忽略'__init __。py' –

+1

我不完全確定你的意思是「但它不會發生。」但簡短的答案是否定的,你不能告訴python忽略該文件。你可以使用'sys.path'來發揮其他功能,但最多隻能是黑客入侵。也許你可以重構一些東西,使你的'__init __。py'爲空?或者至少不會導致任何不良副作用? – jszakmeister

+0

http://stackoverflow.com/questions/7533480/why-is-init-py-not-being-called – Vatsal

回答

5

答案是否定的,你不能沒有被執行__init__.py導入一個Python包。根據定義,爲了創建一個包,你必須在該目錄中放置一個__init__.py。

但是,您可以創建一個空的__init__.py文件。

如果你只想導入從一個模塊的功能,你可以使用:

import sys 
sys.path.append('path_to_package/') 

from module import some_function 

注意,這是一個骯髒的解決方案,而不會總是工作。