PIL ImageTK无法在py2app应用程序包中加载图像

SGB*_*SGB 6 py2app python-3.x osx-lion pillow

我正在测试我制作的应用程序,其中包括在打开时加载几个.png图像.图像在我的Mac(10.7.5)和我母亲(10.8.5)上正确显示; 然而,当我的妹妹在她的手上打开它时(10.9.5),图像不会加载.其他所有功能都完好无损.我应该注意到,在我的Mac和我的母亲身上,我安装了Python 3.4和应用程序使用的许多软件包,包括PIL软件包,而我姐姐没有这些软件包.该应用程序是使用以下命令构建的:

python3.4 setup.py py2app
Run Code Online (Sandbox Code Playgroud)

图像在代码中导入:

image = ImageTk.PhotoImage(file = "images/pic.png")
Run Code Online (Sandbox Code Playgroud)

py2app的安装文件如下:

from setuptools import setup

APP = ['myapp.py']
DATA_FILES = [('', ['images'])]

OPTIONS = {'iconfile': 'myapp.icns', 'packages': ['PIL']}

setup(
    app=APP,
    data_files=DATA_FILES,
    options={'py2app': OPTIONS},
    setup_requires=['py2app'],
)
Run Code Online (Sandbox Code Playgroud)

我猜这是PIL的一个问题,它似乎并不想与py2app很好地配合.我认为它是PIL的原因是因为在运行命令构建我的应用程序后,我在终端中收到以下错误消息.

Modules not found (conditional imports):
* Image (/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/py2app/recipes/PIL/prescript.py)
Run Code Online (Sandbox Code Playgroud)

我会非常感谢任何建议或指示.

小智 0

如果您正在构建需要安装其他软件包的 python 软件包,则可以install_requires在 setup see docs中使用关键字。这具有在用户运行 pip install py2app 时安装软件包的额外好处。在你的情况下,我会使用 install_requires=['pillow'] 并且 pip 会在安装过程中自动抓取枕头。