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