py2exe 和 Tableau Python API

py2exe and Tableau Python API

首先,如果我使用的某些术语不正确,请原谅(贸易会计师...)

我正在编写一段我计划打包为 .exe 产品的代码。

我已经包含了许多标准库(xlrd、csv、math、operator、os、shutil、time、datetime 和 xlwings)。不幸的是,当我添加 'dataextract' 库时,我的程序停止工作了。

dataextract 是 API 专门为名为 Tableau 的软件(市场上领先的 BI 解决方案之一)编写的。 Tableau 网站也表示目前不为其提供任何维护支持。

我已经在非常基本的设置上对其进行了测试:

from xlwings import Workbook, Sheet, Range
Workbook.set_mock_caller(r'X:\JAC Reporting\Tables\Pawel\Development\_DevXL\Test1.xlsx') 
f = Workbook.caller()
s = raw_input('Type in anything: ') 
Range(1, (2, 1)).value = s

这很好用。添加后:

import dataextract as tde

控制台(黑框)只会在屏幕上闪烁,什么也不会发生。

问题:

  1. 库(在本例中为 'dataextract')是否必须满足特定条件才能与 py2exe 兼容?

  2. 由于Tableau不维护原始代码,是否意味着我无法使用py2exe将其打包成.exe?

最后:我使用 'dataextract' almost 已经 2 年了,只要你 运行 通过 .py 文件的程序,它就像一个魅力: ) 我只是决定更进一步。

任何 comments/input 将不胜感激。

编辑: 不确定它是否有帮助,但是当我尝试使用 cx_Freeze 编译器 运行 相同的脚本时,出现以下错误:

首先非常感谢@Andris,他为我指出了正确的方向。

事实证明,当编译器 运行 时,dataextrac 库 dll 不会自动复制。因此,您需要将它们从 'site-package/dataextrac/bin' 复制到 'dist' 文件夹中。

另外,从 12 个 dll 中,您只需要其中的 9 个(我为每个 dll 尝试了 运行 exe 文件)。您不需要的是:icin44.dll、msvcp100.dll 和 msvcr100.dll.

为了安全起见,我还是会应付他们的。

希望这篇post对其他人有所帮助:)