【问题标题】:How to have xlwt functioning in a py2app build如何让 xlwt 在 py2app 构建中运行
【发布时间】:2015-03-03 19:12:34
【问题描述】:

我已成功使用 xlwt 在脚本末尾输出一个 excel 文件,但是当该脚本转换为独立程序(使用 py2app)时,不再生成该 excel。其他导入的包(用于 GUI 的 Tkinter)工作正常,我找不到出现同样问题的地方。 (Mac OS 10.9.5、python 2.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 表

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

【问题讨论】:

  • 你的%PythonDir%\Lib\site-packages中是否有一个名为xlsxwriter的文件夹?
  • 看起来不像 (/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib)。这是我正在查找的正确文件夹吗?
  • 我的意思是xlwt,而不是xlsxwriter
  • 那里也没有 xlwt(如果我确实在正确的文件夹中)
  • 好吧,我刚刚意识到你在使用 mac,所以我不确定这会有多大帮助,但我在py2exe 遇到了同样的问题,在互联网上找不到任何东西帮助。我能找到的所有内容都建议将"includes": "xlwt" 添加到options,但我最终不得不将原始xlwt 文件夹移动到%PythonDir%\Lib\site-packages 以使其最终工作。希望有人能给你比这更好的答案。祝你好运

标签: python excel macos xlwt py2app


【解决方案1】:

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

wb.save('testx.xls

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

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

当给出明确的位置时,就不会出现这个问题。

【讨论】:

    猜你喜欢
    • 2010-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多