Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 如何为matplotlib构建python类结构,以便使用cx\U freeze导出ot.exe?_Python 3.x_Cx Freeze - Fatal编程技术网

Python 3.x 如何为matplotlib构建python类结构,以便使用cx\U freeze导出ot.exe?

Python 3.x 如何为matplotlib构建python类结构,以便使用cx\U freeze导出ot.exe?,python-3.x,cx-freeze,Python 3.x,Cx Freeze,我构建了一个代码来生成和播放随机的音符。它在python中工作得很好,但我想将它变成一个.exe独立程序,这样没有python的人就可以使用它。我在下面显示了输出的图像。它创建了一个带有“TkAgg”后端的matplotlib图形。有5个按钮和一个用户输入框,所有这些都可以工作 我使用cx_freeze尝试对其进行打包,并解决了所有错误。我还得到了一些例子。我可以看到构建文件夹得到了4个图像和许多.wav文件,我需要这些文件来绘制乐谱和播放音符。一个错误显示.exe试图运行我的代码,因为它找不到

我构建了一个代码来生成和播放随机的音符。它在python中工作得很好,但我想将它变成一个.exe独立程序,这样没有python的人就可以使用它。我在下面显示了输出的图像。它创建了一个带有“TkAgg”后端的matplotlib图形。有5个按钮和一个用户输入框,所有这些都可以工作

我使用cx_freeze尝试对其进行打包,并解决了所有错误。我还得到了一些例子。我可以看到构建文件夹得到了4个图像和许多.wav文件,我需要这些文件来绘制乐谱和播放音符。一个错误显示.exe试图运行我的代码,因为它找不到.wav文件)。我更改了指定.exe的位置的方式。但是现在,当我运行.exe时,什么也没发生

不幸的是,我的代码是一个怪物。它很凌乱,而且有点长(如果你算上空白,就有750行)。我试图写入.exe的.py文件是Interval\u Trainer\u v1\u 1.py。可以找到它

因为它可以在python中工作,但不能在.exe中工作,所以我认为这可能是因为我不知道如何结合使用类和良好的绘图。基本上,我调用这个类,然后初始化一堆东西,以便以后可以引用它们。这样我就可以删除以前写过的笔记、旧答案等

我如何练习建立“TkAgg”后端图形,以便在cf_冻结后正确执行?我觉得我需要从一些基本的想法开始,并逐步完善我的应用程序,这相当复杂

注意,我确实使用pygame的声音

这是我的安装文件:

from cx_Freeze import setup, Executable
import os
os.environ['TCL_LIBRARY']=r'C:\Users\Bart\Anaconda3\tcl\tcl8.6'
os.environ['TK_LIBRARY']=r'C:\Users\Bart\Anaconda3\tcl\tk8.6'

import sys
base = None
if sys.platform == 'win32':
    base = 'Win32GUI'
additional_mods = ['numpy.core._methods', 'numpy.lib.format',"matplotlib.backends.backend_tkagg", 'matplotlib.pyplot', 'matplotlib.image', 'matplotlib.widgets']
setup(
    name = "Interval Trainer",
    version = "1.0.0",
    author = "Bart",
    author_email = "bcubrich@gmail.com",
    options = {"build_exe": {'includes': additional_mods,"packages":["pygame","tkinter",'random'],
                         "include_files": [
                         'Images/F cleff 8vb.png', 'Images/F cleff.png',
                         'Images/G cleff 8vb.png', 'Images/G cleff.png',
                         'Pitches/A#1.wav', 'Pitches/A#2.wav', 'Pitches/A#3.wav',
                         'Pitches/A#4.wav', 'Pitches/A#5.wav', 'Pitches/A1.wav',
                         'Pitches/A2.wav', 'Pitches/A3.wav', 'Pitches/A4.wav',
                         'Pitches/A5.wav', 'Pitches/Ab1.wav', 'Pitches/Ab2.wav',
                         'Pitches/Ab3.wav', 'Pitches/Ab4.wav', 'Pitches/B#2.wav',
                         'Pitches/B#3.wav', 'Pitches/B#4.wav', 'Pitches/B1.wav',
                         'Pitches/B2.wav', 'Pitches/B3.wav', 'Pitches/B4.wav',
                         'Pitches/B5.wav', 'Pitches/Bb1.wav', 'Pitches/Bb2.wav',
                         'Pitches/Bb3.wav', 'Pitches/Bb4.wav', 'Pitches/C#2.wav',
                         'Pitches/C#3.wav', 'Pitches/C#4.wav', 'Pitches/C#5.wav',
                         'Pitches/C2.wav', 'Pitches/C3.wav', 'Pitches/C4.wav',
                         'Pitches/C5.wav', 'Pitches/C6.wav', 'Pitches/D#2.wav',
                         'Pitches/D#3.wav', 'Pitches/D#4.wav', 'Pitches/D#5.wav',
                         'Pitches/D2.wav', 'Pitches/D3.wav', 'Pitches/D4.wav',
                         'Pitches/D5.wav', 'Pitches/Db1.wav', 'Pitches/Db2.wav',
                         'Pitches/Db3.wav', 'Pitches/Db4.wav', 'Pitches/E#2.wav',
                         'Pitches/E#3.wav', 'Pitches/E#4.wav', 'Pitches/E1.wav',
                         'Pitches/E2.wav', 'Pitches/E3.wav', 'Pitches/E4.wav',
                         'Pitches/E5.wav', 'Pitches/Eb2.wav', 'Pitches/Eb3.wav',
                         'Pitches/Eb4.wav', 'Pitches/F#1.wav', 'Pitches/F#2.wav',
                         'Pitches/F#3.wav', 'Pitches/F#4.wav', 'Pitches/F#5.wav',
                         'Pitches/F1.wav', 'Pitches/F2.wav', 'Pitches/F3.wav',
                         'Pitches/F4.wav', 'Pitches/F5.wav', 'Pitches/G#1.wav',
                         'Pitches/G#2.wav', 'Pitches/G#3.wav', 'Pitches/G#4.wav',
                         'Pitches/G#5.wav', 'Pitches/G1.wav', 'Pitches/G2.wav',
                         'Pitches/G3.wav', 'Pitches/G4.wav', 'Pitches/G5.wav',
                         'Pitches/Gb1.wav', 'Pitches/Gb2.wav', 'Pitches/Gb3.wav',
                         'Pitches/Gb4.wav']}},
    executables = [Executable("Interval_trainer_v1_1.py", base=base)],
    )


任何帮助都将不胜感激

参见
matplotlib
用户界面示例,并练习构建
TkAgg
反向图形。

使用.exe构建时非常有用的一件事是在windows(在我的情况下)命令提示符下启动exe。这将允许打印python错误,这些错误在应用程序关闭时不会关闭。