使用py2exe从导入openpyxl

时间:2015-07-28 05:51:52

标签: python python-3.x py2exe openpyxl

我正在构建一个编写*.xlsx个文件的控制台应用程序。理想情况下(并规划未来的功能)我还想阅读现有文件并编写修改后的版本。因此,我觉得python包openpyxl在可用选项中是最好的,因为它具有读写功能。

未冻结的代码按预期工作。

虽然使用py2exe冻结代码会产生一个没有重大问题的可执行文件,但它在运行时会崩溃。对于32位和64位版本的环境,结果都是相同的。

我正在开发:

  • Python 3.4(Anaconda)
  • py2exe == 0.9.2.2
  • openpyxl == 2.3.0-b1
  • Windows 7

测试文件是:

""" main_openpyxl.py """
from openpyxl import Workbook

if __name__ == '__main__':
    print('creating a workbook')
    wb = Workbook()
    ws = wb.active
    ws['A1'] = 'foo'
    wb.save('test.xlsx')
    print('done')

""" setup.py """
from distutils.core import setup
import py2exe

setup(
    console=['main.py'],
    options={
        'py2exe': {
            'bundle_files': 2
        }
    }
)

注意,使用替代包(xlsxwriter)确实会生成可执行的可执行文件:

""" main_xlsxwriter.py """
from xlsxwriter import Workbook

if __name__ == '__main__':
    print('creating a workbook')
    wb = Workbook('test.xlsx')
    ws = wb.add_worksheet()
    ws.write('A1', 'foo')
    wb.close()
    print('done')

但是这个包明确地只创建*.xlsx个文件。

另外值得一提的是,我有目的地避免使用pandas

因此,任何人都可以建议一个适用于openpyxl的解决方案吗?

0 个答案:

没有答案