首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从python27冻结执行程序

从python27冻结执行程序
EN

Stack Overflow用户
提问于 2014-11-10 20:47:46
回答 1查看 1K关注 0票数 1

我正在使用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,下面的行只是擦除工具栏,我认为这可能是它不能工作的原因,但它不是。

代码语言:javascript
运行
AI代码解释
复制
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运行。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-16 20:45:39

好吧,我找到了解决问题的办法。

我的安装文件如下所示:

代码语言:javascript
运行
AI代码解释
复制
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,必须使用以下代码:

代码语言:javascript
运行
AI代码解释
复制
import matplotlib
from matplotlib import pyplot as plt
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg, NavigationToolbar2TkAgg

如果我只使用例如:

代码语言:javascript
运行
AI代码解释
复制
import matplotlib.pyplot as plt

它不起作用。我不知道为什么但事实并非如此?有人回答吗?

对于这个头文件和这个setup.py文件,我可以在我的主程序中使用matplotlib,如下所示:

代码语言:javascript
运行
AI代码解释
复制
plt.plot([1,2,3])
plt.show()

我希望,如果有人有同样的问题,如我,他或她可以使用我的例子。

干杯麦克斯

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26857679

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档