py2app在早期版本的OS X上因PIL错误而崩溃



其他人之前也问过类似的问题:https://stackoverflow.com/questions/23600028/py2app-app-crashes-on-earlier-mac-os-x-versions

我有一个应用程序在我的机器上运行良好(OSX 10.9.4),但当我把它移到另一台运行10.7.5的机器上时,该应用程序在启动时崩溃。我在控制台中收到以下消息:

Traceback (most recent call last):
    File "/PATH_TO_APP/APP.app/Contents/Resources/__boot__.py", line 3
        _recipes_pil_prescript(['Hdf5SubImagePlugin', 'FitsStubImagePlugin', 'SunImagePlugin', 'GbrImagePlugin', 'Jpeg2KImagePlugin', 'MicImagePlugin', 'FpxImagePlugin', ImImagePlugin', ...
    File "/PATH_TO_APP/APP.app/Contents/Resources/__boot__.py, line 3
        from PIL import Image
    File "PIL/Image.pyc", line 62, in <module>
    File "PIL/_imaging.pyc", line 14, in <module>
    File "PIL/_imaging.pyc", line 10, in __load
ImportError: dlopen(/PATH_TO_APP/APP.app/Contents/Resources/lib/python2.7/lib-dynload/PIL/_imaging.so, 2): Symbol not found: ___sincos_stret
    Referenced from /PATH_TO_APP/APP.app/Contents/Resources/lib/python2.7/lib-dynload/PIL/_imaging.so
    Expected in: /usr/lib/libSystem.B.dylib
    in /PATH_TO_APP/APP.app/Contents/Resources/lib/python2.7/lib-dynload/PIL/_imaging.so

早些时候,为了避免这个错误,我刚刚卸载了抱枕。我不知道为什么枕头库一开始就被添加到应用程序中,因为我不认为我在使用它。但现在,当尝试这个解决方案时,我遇到了另一个错误:

Traceback (most recent call last):
    File "/PATH_TO_APP.app/APP.app/Contents/Resources/__boot__.py", line 384, in <module> _recipes_pil_prescript([])
    File "/PATH_TO_APP.app/APP.app/Contents/Resources/__boot__.py", line 344, in _recipes_pil_prescript from PIL import Image
    File "/usr/local/lib/python2.7/site-packages/PIL/Image.py", line 62, in <module>
ImportError cannot import name _imaging

显然,我现在不知怎么地在使用PIL。我的脚本导入以下内容:

from __future__ import division
import easygui as eg
import os, zlib, re, datetime, getpass, tkMessageBox, sys
import zipfile as z
import Tkinter as tk
from tkFileDialog import askdirectory
from optparse import OptionParser

这是我的设置.py:

from setuptools import setup
APP = ['zipperscript.py']
DATA_FILES = []
OPTIONS = {'argv_emulation': True, 'excludes': ['']}
setup(
    app=APP,
    name="Zipperscript_HI_50",
    data_files=DATA_FILES,
    options={'py2app': OPTIONS},
    setup_requires=['py2app'],
    version="Hawaii branch 4.0.50"
)

我不确定是操作系统版本造成了这个问题,但这是我现在的理论。我不知道该怎么办。非常感谢您的任何帮助或建议。

我在Mac OS 10.8.5上使用buildout时遇到了类似的问题。Pypi上可用的预编译包似乎是在较新版本的OSX上编译的,但不幸的是,在旧版本上测试不足。

解决方案是从源头安装枕头。下载源代码,然后运行pip-installyour_downloaded_file。您可能需要预先安装依赖项,如libjpeg和zlib。

在这样做之后,我不再遇到错误,并安装了枕头版本5.4.0。

相关内容

最新更新