【发布时间】:2014-05-30 11:00:38
【问题描述】:
使用带有 Pandas 库的 cx_freeze 创建 exe 时遇到问题。我见过很多其他人对 numPy 有问题,但我能够成功引入 numPy。我最大的痛点是熊猫。 Pandas 中是否有任何可能导致失败的内容?
设置文件
from cx_Freeze import setup, Executable
build_exe_options = {
"includes": ['numpy', 'pandas'],
"packages": [],
'excludes' : [],
"include_files": []}
setup(
name = "appName",
version = "0.1",
description = "",
author = "Dengar",
options = {"build_exe": build_exe_options},
executables = [Executable("appName.py")]
)
代码 sn-p 显示我正在提取的内容
import pyodbc
import numpy as np
import pandas.io.sql as psql
from pandas import DataFrame, Series, date_range
import datetime
print("Hello World")
这是我得到的错误日志
> Stamped: build\exe.win-amd64-2.7\appName.exe Traceback (most recent > call last): File "setup.py", line 17, in <module> > executables = [Executable("pyodbc.py")] File "C:\Users\Dengar\AppData\Local\Continuum\Anaconda\lib\site-packages\cx_Freeze\dist.py", > line 365, in setup > distutils.core.setup(**attrs) File "C:\Users\Dengar\AppData\Local\Continuum\Anaconda\lib\distutils\core.py", > line 152, in setup > dist.run_commands() File "C:\Users\Dengar\AppData\Local\Continuum\Anaconda\lib\distutils\dist.py", > line 953, in run_commands > self.run_command(cmd) File "C:\Users\Dengar\AppData\Local\Continuum\Anaconda\lib\distutils\dist.py", > line 972, in run_command > cmd_obj.run() File "C:\Users\Dengar\AppData\Local\Continuum\Anaconda\lib\distutils\command\build.py", > line 127, in run > self.run_command(cmd_name) File "C:\Users\Dengar\AppData\Local\Continuum\Anaconda\lib\distutils\cmd.py", > line 326, in run_command > self.distribution.run_command(command) File "C:\Users\Dengar\AppData\Local\Continuum\Anaconda\lib\distutils\dist.py", > line 972, in run_command > cmd_obj.run() File "C:\Users\Dengar\AppData\Local\Continuum\Anaconda\lib\site-packages\cx_Freeze\dist.py", > line 235, in run > freezer.Freeze() File "C:\Users\Dengar\AppData\Local\Continuum\Anaconda\lib\site-packages\cx_Freeze\freezer.py", > line 582, in Freeze > self.compress, self.copyDependentFiles) File "C:\Users\Dengar\AppData\Local\Continuum\Anaconda\lib\site-packages\cx_Freeze\freezer.py", > line 492, in _WriteModules > module.Create(finder) File "C:\Users\Dengar\AppData\Local\Continuum\Anaconda\lib\site-packages\cx_Freeze\freezer.py", > line 714, in Create > module.file, module.name) cx_Freeze.freezer.ConfigError: no file named sys (for module boto.compat.sys)
如果我从我的安装文件和 sn-p 中删除 Pandas 并离开 Numpy,我有一个功能可执行文件。有人遇到这个问题吗?创建了 exe,但没有任何支持文件添加到构建目录中。打开exe后,程序立即崩溃。
我在 anaconda windows 8 机器上运行 python27 64 位。
【问题讨论】:
-
它落在了 boto 中的某个东西上,我想它必须被 pandas 中的一些可选代码拉入。如果您不需要 boto,请尝试将其添加到 excludes 中。
-
@ThomasK 我应该对此发布更新。看来 gbq.py(Google Big Query api)是 pandas 中的问题。我将其注释掉,并且能够毫无问题地转换为 exe。
-
我还想指出,我最终使用了 py2exe。我无法让 cx_Freeze 工作。
标签: python python-2.7 numpy pandas cx-freeze