我正在使用python27,Windows7 64位,但是我的python版本是32位,以避免使用不同的64位库时出现一些错误。我和cx公司做过斗争。我尝试了一些简单的例子,而且效果很好。即使我将一些自写脚本导入到我的main.py脚本中,在冻结它之后,它仍然工作。问题是如果我将matplotlib添加到文件中。我知道这是个常见的问题,但我无法解决这个问题。我的普通plot.py脚本工作,请参阅下面的代码。不用担心不同的数组,我也尝试使用简单的数组,比如x= 1,2,3,4和y= 1,2,3,4。impoert 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运行。
发布于 2014-11-16 20:45:39
好吧,我找到了解决问题的办法。
我的安装文件如下所示:
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 .关于FileDialog的提示,因为如果没有包含"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()
我希望,如果有人有同样的问题,如我,他或她可以使用我的例子。
干杯麦克斯
https://stackoverflow.com/questions/26857679
复制相似问题