2012-10-30 51 views
1

我想從我的Python源代碼創建一個.app文件。我的Python源是wxPython的,並有11個圖像文件(巴紐,大小爲32X32)如何從Python製作.app包含圖像文件

製作的.app是成功的,但它不包括我的圖像文件,它只是顯示錯誤消息

no bitmap handler for types 50 defined.

詳細...

Can't load image from file...

即使在同一個目錄中,仍呈現此錯誤消息。

我MacOSX上10.6.7

使用py2apppython 2.7wxPython我怎樣才能讓我的圖像文件。應用程序?

+2

你可以顯示你的setup.py嗎? – jdi

+0

同時顯示您的.app包的一棵樹。很可能.png文件不在那裏,或者不在你期望的位置。 – abarnert

回答

6

包括資源最簡單的方法是將其指定爲data_filessetup.py

from setuptools import setup 

APP = ['app.py'] 
DATA_FILES = [('', ['images'])] 
OPTIONS = {'argv_emulation': True} 

setup(
    app=APP, 
    data_files=DATA_FILES, 
    options={'py2app': OPTIONS}, 
    setup_requires=['py2app'], 
) 

<app.app>/Contents/Resources將成爲所有數據中的當前目錄和資源根。這會將項目的images/目錄置於資源根目錄中。

如果你只希望包括您images/目錄中的特定文件,你可以告訴它如何映射:

DATA_FILES = [ 
    ('images', ['images/picture.jpg', 'images/picture2.png']), 
    ('images/icons', ['images/icons/ico1.ico']) 
] 

或者你也可以更大膽的嘗試,並說「只包括從我的圖像目錄中的所有JPEG文件」:

from glob import glob 
... 
DATA_FILES = [ 
    ('images', glob('images/*.jpg')), 
] 
+0

所有的png圖片都直接位於項目根目錄下的img'目錄下嗎?這不是一個遞歸搜索。 – jdi

相關問題