Python 2.7 python27中的cx冻结exe

Python 2.7 python27中的cx冻结exe,python-2.7,matplotlib,cx-freeze,Python 2.7,Matplotlib,Cx Freeze,我使用的是python27,Windows7 64位,但我的python版本是32位,以避免使用不同的64位库时出现一些错误。 我在与冰冻作斗争。我尝试了一些简单的例子,效果很好。即使我将一些自行编写的脚本导入到main.py脚本中,它在冻结后仍然可以工作。问题是如果我将matplotlib添加到文件中。我知道这是一个常见的问题,但我无法解决我的问题。我的normal plot.py脚本正常工作,请参见下面的代码。不用担心不同的数组,我也尝试过简单的数组,比如x=[1,2,3,4]和y=[1,2

我使用的是python27,Windows7 64位,但我的python版本是32位,以避免使用不同的64位库时出现一些错误。 我在与冰冻作斗争。我尝试了一些简单的例子,效果很好。即使我将一些自行编写的脚本导入到main.py脚本中,它在冻结后仍然可以工作。问题是如果我将matplotlib添加到文件中。我知道这是一个常见的问题,但我无法解决我的问题。我的normal plot.py脚本正常工作,请参见下面的代码。不用担心不同的数组,我也尝试过简单的数组,比如x=[1,2,3,4]和y=[1,2,3,4]。插入matplotlib作为mpl,下面这行只是为了删除工具栏,我想这可能是它不工作的原因,但它不是

import matplotlib.pyplot as plt
import csv
import numpy as np
import matplotlib as mpl
mpl.rcParams['toolbar'] = 'None'

# change delimiter to |
csv.register_dialect('pipes', delimiter='|')
# open file data.csv
csv_file_object = csv.reader(open("data.csv", 'r'), dialect='pipes')
# creates headers from the first line of the data file
header = csv_file_object.next()

data = []
for row in csv_file_object:
    data.append(row)
data = np.array(data)

y = []
for n1 in range(len(data)):
    y.append(float(data[n1][1]))
print y

time = []
for n2 in range(len(data)):
    time.append(int((data[n2][0].split('_')[1])[:4]))
print time


plt.plot(time, y)
plt.show()
我尝试过以下方面的指导:

但它不起作用。如果我一步一步地尝试此操作,则在尝试执行plot.exe时引发的错误为:

也许这只是一个简单的错误,有人可以帮助我,但我也尝试了其他安装文件等。我可以用GUI冻结一个简单的程序,所以Tkinter不会有问题

希望有人能帮助我

干杯 马克斯

编辑:我发现了一个使用不同后端的示例,可以正常工作,请参见下面的链接:
但是我无法在冻结脚本后使其作为exe运行。

好的,我找到了解决问题的方法

我的安装文件如下所示:

import cx_Freeze
import sys
import matplotlib
base = None
if sys.platform == "win32":
    base = "Win32GUI"

executables = [
    cx_Freeze.Executable("newtry.py", base = base),
    ]

build_exe_options = {"includes":["FileDialog"],
                     "include_files":["test.csv"],
                     "excludes":[],
                     }
cx_Freeze.setup(
    name = "script",
    options = {"build_exe": build_exe_options},
    version = "0.0",
    description = "A basic example",
    executables = executables)
感谢Thomas K.关于FileDialog的提示,因为如果没有includes FileDialog,它将无法工作

此外,要在可执行文件中导入matplotlib,我必须使用以下代码:

import matplotlib
from matplotlib import pyplot as plt
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg, NavigationToolbar2TkAgg
如果我仅使用以下示例:

import matplotlib.pyplot as plt
它不起作用。我不知道为什么,但它没有?有人能回答吗

有了此标题和setup.py文件,我可以在主程序中使用matplotlib,如下所示:

plt.plot([1,2,3])
plt.show()
我希望如果有人有像我一样的问题,他或她可以用我的例子

干杯
Max

尝试将“tkFileDialog”添加到包含列表中。通常情况下,cx_Freeze会自动查找导入的模块,但当它们通过six.moves加载时,它会遇到问题。thx需要帮助但没有帮助,仍然是相同的错误:我的错误,尝试相同的操作,但使用“FileDialog”,错误消息中的相同名称。我不知道为什么会有两个名称非常相似的东西。是的,我已经尝试了两个软件包,但都不起作用。你确定这与你显示的错误完全相同吗?可以显示setup.py文件吗?