如何让 xlwt 在 py2app 构建中运行

How to have xlwt functioning in a py2app build

我已经成功地使用 xlwt 在我的脚本末尾输出了一个 excel 文件,但是当该脚本被转换成一个独立的程序(使用 py2app)时,这个 excel 不再生产的。其他导入的包(用于 GUI 的 Tkinter)工作正常,我找不到出现相同问题的地方。 (MacOS10.9.5,python2.7.5:预装mac版本) (xlwt 存在于 /build/bdist.macosx-10.9-intel/python2.7-standalone/app/site-packages/)

问题出在一个非常小的脚本上,它输出一个 excel 文件,其中有一个填充单元格:

def export_xcl():
    import xlwt

    wb = xlwt.Workbook()#initialize excel sheet
    ws = wb.add_sheet('Sheet1')

    text_cells=xlwt.easyxf('font: name Times New Roman')

    ws.write(0,0, 'jaja',text_cells)

    print ('voor het saven')

    wb.save('testx.xls')

    print ('na het saven')

if __name__ == '__main__':
    export_xcl()

此脚本在正常启动时运行完美。

可执行文件却没有。 py2app 使用的 setup.py 文件如下:

from setuptools import setup

APP = ['testx.py']
DATA_FILES = []
OPTIONS = {'argv_emulation': True}

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

现在运行以下命令:$python setup.py py2app 生成独立程序,打开时不会生成 excel sheet

我在不同的网站上看到人们已经在他们的构建中毫无问题地包含了 xlwt 脚本,所以我希望有人能指出我正确的方向。

最终问题出在MyApplication.app后面的隐藏文件夹。当给出以下命令时:

wb.save('testx.xls

excel 文件将保存在 MyApplication.app/Contents/Resources/testx.xls 下。 要保存在与 运行 文件相同的目录中,请使用以下命令:

wb.save('../../../testx.xls')

当给出明确位置时,不会出现此问题。