我有一個Python應用程序,在運行時動態加載python模塊(使用__import__
)。要加載的模塊位於名爲'plugins
'的包中(即子文件夾名爲plugins
,__init__.py
等)。從python解釋器運行良好,甚至在使用py2exe編譯爲windows二進制文件時也是如此。py2app:如何包含將由__import__加載的模塊?
我試着從它建立一個OSX應用程序,它成功了,但是當運行.app時,我得到一個ImportError:'no module named plugins.xxxx
'。
我敢肯定我給了正確的選擇,py2app('includes': [...]
,'packages':['plugins']
,等同於我的py2exe做),因爲當我瀏覽的.app內容,我看到一個文件夾Contents/Resources/lib/python2.5/plugins/
中的所有插件模塊。
那麼,爲什麼不能找到我的模塊(必須是一些路徑問題)?
編輯:
我已經找到一種方法,使其工作,但它不是一個很好的解決方案: 當我打印路徑的Python搜索模塊(使用print sys.path
),我注意到,文件夾Contents/Resources/lib/python2.5/plugins/
未列出。但是,文件夾Contents/Resources/
是,所以我將plugins
文件夾移動到Contents/Resources
文件夾。現在找到了插件。但我對這個醜陋的手工破解仍然不滿意。