cx-freeze可执行文件不能与virtualenv

时间:2017-08-17 20:20:17

标签: python matplotlib virtualenv cx-freeze

我为一个小的cx-freeze(5.0.2)测试设置了一个虚拟环境(Python 3.5)。但是创建的可执行文件不会运行。但是,py脚本本身在虚拟环境中正常工作。

这是我要编译成exe的脚本 3DHist-demo

我在开头添加了以下几行以获得PyQt4-backend:

import matplotlib
matplotlib.use('Qt4Agg')

我的设置脚本如下所示:

import sys
from cx_Freeze import setup, Executable

import os

base = 'Console'
if sys.platform == 'win32':
    base = 'Win32GUI'

options = {
    'build_exe': {

        # Sometimes a little fine-tuning is needed
        # exclude all backends except wx
        'includes': ['matplotlib', 'numpy.core._methods',
                     'matplotlib.backends.backend_qt4agg', 'numpy'],
        'excludes': [],
        'optimize': 2,
        'include_msvcr': True
    }
}

executables = [
    Executable('3Dhist.py', base=base)
]

setup(name='3Dhist',
      version='0.1',
      description='Sample matplotlib script',
      executables=executables,
      options=options
      )

cx-freeze正确运行并创建所有必需的文件。但是可执行文件不会产生任何输出。它在后台执行某些操作,但它不是创建图形窗口。

我知道在我的完整python安装之后,在虚拟环境之外一切正常。

这是我的virtualenv中的包列表:

  • cx-Freeze(5.0.2)
  • cycler(0.10.0)
  • matplotlib(2.0.2)
  • numpy(1.13.1)
  • pip(9.0.1)
  • pyparsing(2.2.0)
  • PyQt4(4.11.4)
  • python-dateutil(2.6.1)
  • pytz(2017.2)
  • setuptools(36.2.7)
  • 六(1.10.0)
  • wheel(0.29.0)

我做错了什么?

0 个答案:

没有答案