Matplotlib cx\ U冻结忽略自定义变量模块

Matplotlib cx\ U冻结忽略自定义变量模块,matplotlib,python-3.3,cx-freeze,Matplotlib,Python 3.3,Cx Freeze,我正在尝试冻结一个使用PyQT5、Matplolib和Python 3.3制作的小GUI。 我是初学者,请原谅我的无知 该计划包括: -一个主窗口 -带有Matplotlib图的两个辅助QDialogs -一个变量\我用来存储变量(而不是使用全局变量)的模块 -一个名为ROI的定制类 从Python终端运行时,代码工作正常 问题:当运行通过cx\u freeze QMainWindow获得的exe时,用户选择数据,数据立即显示在第一个QDialog中。第二个QDialog使用存储在“variab

我正在尝试冻结一个使用PyQT5、Matplolib和Python 3.3制作的小GUI。 我是初学者,请原谅我的无知

该计划包括: -一个主窗口 -带有Matplotlib图的两个辅助QDialogs -一个变量\我用来存储变量(而不是使用全局变量)的模块 -一个名为ROI的定制类

从Python终端运行时,代码工作正常

问题:当运行通过cx\u freeze QMainWindow获得的exe时,用户选择数据,数据立即显示在第一个QDialog中。第二个QDialog使用存储在“variables_Module”中的变量,应该显示matplotlib hist2d,但不显示任何内容

出于这个原因,我认为变量_模块不会以某种方式包含在构建中

Main.py包含以下内容:

import sys, time

from PyQt5.QtCore import Qt, pyqtSignal, QObject
from PyQt5.QtWidgets import QWidget, QApplication, QMainWindow, QFormLayout, QVBoxLayout,QFileDialog, QDialog, QPushButton, QGridLayout, QMessageBox, QSlider, QSpinBox, QGroupBox, QLabel, QCheckBox, QComboBox, QColorDialog, QProgressDialog
from HySP_main_GUI import Ui_Main
import numpy
from matplotlib.pylab import *
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas
from matplotlib.backends.backend_qt5agg import NavigationToolbar2QTAgg as NavigationToolbar
from matplotlib.figure import Figure
import matplotlib.pyplot as pyplot

#these are the "custom" modules
import Variables_Module
from ROI import Resizable_animated_rect
from scipy import ndimage
我尝试将setup.py中的“自定义”模块作为
包含
包含
包含在每个组合中,但没有解决方案

我知道我不应该把这些模块放在任何地方,但我已经没有想法了

此外,所有文件(Main.py、ROI.py、Variables_Module.py)都在同一个文件夹中,在运行
cx\u freeze build
时不会出现错误

我使用的setup.py是:

import sys
from cx_Freeze import setup, Executable


includes = ["ROI","Variables_Module"]
includefiles = ['ROI.py','Variables_Module.py']
excludes = [ 'Tkinter']
packages = ["ROI","Variables_Module"]
path = []

# Dependencies are automatically detected, but it might need fine tuning.
build_exe_options = {
                     "includes":      includes, 
                     "include_files": includefiles,
                     "excludes":      excludes, 
                     "packages":      packages, 
                     "path":          path
}

# GUI applications require a different base on Windows (the default is for a
# console application).
base = None
exe = None
if sys.platform == "win32":
    exe = Executable(
      script="E:\\Python\\Projects\\test\\test.py",
      initScript = None,
      base="Win32GUI",
      compress = True,
      copyDependentFiles = True,
      appendScriptToExe = False,
      appendScriptToLibrary = False,
      icon = None
    )

setup(  
      name = "test",
      version = "0.1",
      author = 'test',
      description = "My GUI!",
      options = {"build_exe": build_exe_options},
      executables = [exe]
)

似乎警告会停止冻结的exe。 在绘制我的新图像之前,显示了一些关于NaN的警告,显然阻止了应用程序继续计算

我使用以下方法解决了在故障函数中抑制警告的问题:

import warnings

warnings.simplefilter("ignore")

这就解决了问题。花了两天时间

如果从命令提示符下运行exe,是否看到任何错误或警告?没有,我尝试从命令提示符下运行exe,奇怪的是没有出现任何错误或警告。当我运行py脚本时,我确实收到了一些关于NaN舍入问题的警告,但是脚本中的代码运行良好。您能显示冻结过程的输出吗?它可能很长,所以请将它放在一个粘贴箱中。很抱歉,这是发现我在一个类中嵌套了一个scipy import ndimage的
,而我没有在主要帖子中报告该类。我现在用这个导入更新了帖子和日志粘贴库。但是,这并不会改变结果。是的,如果应用程序没有控制台时尝试写入控制台,则Windows上的Python会出现问题—它会填充缓冲区,然后阻塞。它不是针对警告的;任何试图写入stdout/stderr的东西都可能导致它。通常的解决方法。