【问题标题】:Unable to build .exe from Python program which uses pandas无法从使用 pandas 的 Python 程序构建 .exe
【发布时间】:2015-12-04 12:58:03
【问题描述】:

我正在使用 pyinstaller 构建一个独立的可执行文件。 Pyinstaller 成功生成可执行文件,但是当我运行 .exe 时出现以下错误:

ImportError:C 扩展:“lib”未构建。如果要导入 pandas 从源目录,您可能需要先运行“python setup.py build_ext --inplace”来构建 C 扩展。

在尝试解决问题时,我在 C:\Python34\Lib\site-packages\pandas 中寻找“setup.py”文件,但没有找到。我还使用 pip 卸载了 pandas,然后从 www.lfd.uci.edu/~gohlke/pythonlibs/ 的 .whl 文件重新安装。我还用谷歌搜索了这个错误,发现有人似乎有类似的问题here。在这种情况下,通过运行'python setup.py build_ext --inplace --force' 解决了问题,但同样,我在 pandas 目录中找不到 setup.py。我还找到了“只使用 Linux”的建议,但这不是一个选项,因为这是为了工作。我还尝试使用 py2exe 和 cx_freeze 构建可执行文件,但这些都不起作用。

我在 Windows 7 下使用 Python 3.4,当我从 PyCharm 内部运行程序时,程序运行正常。如何获得工作的独立 .exe?

编辑:

使用 py2exe 构建可执行文件并运行后,我得到的错误是:

ImportError: (DLL load failed: 指定的模块不能被 成立。) 'C:\Users\aarjad\PycharmProjects\MyProgram\dist\scipi.special._ufuncs.pyd')

但是,'scipi.special._ufuncs.pyd' 就在那个文件夹中,所以我不知道那里会发生什么。

使用 cx_freeze 构建可执行文件并运行它后,我得到的错误是:

ImportError: Error importing scipi: you cannot import scipi while 在 scipi 源目录中;请退出 scipy 源代码树 首先,然后重新启动你的 python 解释器。

【问题讨论】:

  • 您需要在program.spec 文件的datas 条目中添加额外的库文件...我认为pyinstaller 还没有很好的python3 支持(也可能是问题的一部分)。 .. 还要查看 pyinstaller “hooks”,因为可能已经有一个 pandas ...\
  • Pandas 应该能够按照 PyInstaller 的“支持的软件包”页面开箱即用,因此不需要挂钩。 github.com/pyinstaller/pyinstaller/wiki/Supported-Packages
  • hmmm ...好吧,它在python 2中运行良好,所以请参阅我的第二点......因为它显然在python3“开箱即用”中不起作用,你必须添加一些钩子......
  • 我做了一些谷歌搜索,找不到熊猫的钩子。 ://
  • 对不起......我的第一条评论提供了应该帮助它工作的信息......但我不打算安装 python3.4,所以我将退出这个对话,希望有人熟悉 3.4 和 pyinstaller 会为您提供更多见解

标签: pandas python-3.4 py2exe pyinstaller cx-freeze


【解决方案1】:

通过将 statsmodels 包中的 lowess 函数从 cython 移植到 python 解决了这个问题,从而消除了导入 statsmodels 包的需要,而这正是 pyinstaller 令人窒息的问题。

【讨论】:

  • 你能解释一下你是怎么做到的,因为我现在遇到了 3.5 的问题,谢谢
猜你喜欢
  • 2014-05-30
  • 1970-01-01
  • 2021-09-27
  • 1970-01-01
  • 2010-09-15
  • 2016-02-12
  • 1970-01-01
  • 2019-11-24
  • 1970-01-01
相关资源
最近更新 更多