Tkinter,Matplotlib,py2exe:导入错误:运行时加载DLL失败。ex

2024-04-27 18:11:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个python程序叫做UIMaster.py我正在使用py2exe转换为可执行文件。当我运行设置.py在终端中,它正在创建build和dist文件夹,并包含一个UIMaster.exe文件,但是,当我双击它,终端窗口弹出,然后等待一秒钟,并写入一些文本(关闭太快,无法阅读)然后关闭。但是,当我用python运行python程序时,一切都正常。我不能百分之百确定为什么会发生这种事。我正在使用matplotlib,我认为这可能是导致问题的原因。我确定我需要从选项中排除一些内容,并可能在数据文件中添加一些内容,但不确定这是否正确。当我进入终端和cd-dist然后运行UIMaster.exe,我收到以下消息:

Traceback (most recent call last):
    File "UIMaster.py", line 7, in <module>
    File "matplotlib\__init__.pyc", line 1100, in <module>
    File "matplotlib\__init__.pyc", line 947, in rc_params
    File "matplotlib\__init__.pyc", line 789, in matplotlib_fname
    File "matplotlib\__init__.pyc", line 325, in wrapper
    File "matplotlib\__init__.pyc", line 693, in _get_data_path_cached
    File "matplotlib\__init__.pyc", line 689, in _get_data_path
RuntimeError: Could not find the matplotlib data files

以下是我的设置.py公司名称:

^{pr2}$

我也尝试了以下操作,但仍然收到相同的错误消息:

from distutils.core import setup
import zmq.libzmq
import py2exe
import numpy
import matplotlib
import pylab
setup(
    console = ['UIMaster.py'],
    zipfile='lib/library.zip',
    options={
        'py2exe': {
            'includes': ['zmq.backend.cython'],
            'excludes': ['zmq.libzmq','_gtkagg', '_tkagg'],
            'dll_excludes': ['libzmq.pyd'],
        }
    },
    data_files=[
        ('lib', (zmq.libzmq.__file__,),matplotlib.get_py2exe_datafiles() )
    ]
)

最后,我尝试了以下操作,得到了相同的错误消息:

from distutils.core import setup
import zmq.libzmq
import py2exe
import matplotlib
setup(
    console = ['UIMaster.py'],
    zipfile='lib/library.zip',
    options={
        'py2exe': {
            'packages': ['matplotlib', 'pytz'],
            'includes': ['zmq.backend.cython'],
            'excludes': ['zmq.libzmq','_gtkagg', '_tkagg'],
            'dll_excludes': ['libzmq.pyd','libgdk-win32-2.0-0.dll',
                                     'libgobject-2.0-0.dll',
                                     'libgdk_pixbuf-2.0-0.dll',
                                     'libgtk-win32-2.0-0.dll',
                                     'libglib-2.0-0.dll',
                                     'libcairo-2.dll',
                                     'libpango-1.0-0.dll',
                                     'libpangowin32-1.0-0.dll',
                                     'libpangocairo-1.0-0.dll',
                                     'libglade-2.0-0.dll',
                                     'libgmodule-2.0-0.dll',
                                     'libgthread-2.0-0.dll',
                                     'QtGui4.dll', 'QtCore.dll',
                                     'QtCore4.dll'],
        }
    },
    data_files=[
        ('lib', (zmq.libzmq.__file__,),matplotlib.get_py2exe_datafiles(),)
    ]
)

注意:我还需要调整zmq模块

我想使用py2exe而不是pyinstaller,只是因为我不熟悉pyinstaller,但是如果有人能给我一些关于pyinstaller的建议,那么我将使用它来进行可执行转换。在

编辑:我试图使用pyinstaller,但一直得到

IOError Errno[22] invalid mode <'rb'> or filename: "

我还需要做些什么来启动和运行可执行文件吗?我已经在生成build和dist文件夹,但是不知道为什么程序没有从可执行文件中弹出。谢谢各位!在

编辑:使用时matplotlib.get_py2exe_数据文件()

当我转到dist文件夹并运行.exe时,会产生以下错误:

  File "UIMaster.py", line 7, in <module>
  File "matplotlib\pyplot.pyc", line 109, in <module>
  File "matplotlib\backends\__init__.pyc", line 32, in pylab_setup
  File "matplotlib\backends\backend_qt4agg.pyc", line 17, in <module>
  File "matplotlib\backends\backend_qt5agg.pyc", line 18, in <module>
  File "matplotlib\backends\backend_qt5.pyc", line 31, in <module>
  File "matplotlib\backends\qt_compat.pyc", line 91, in <module>
  File "PyQt4\QtCore.pyc", line 12, in <module>
  File "PyQt4\QtCore.pyc", line 10, in __load
  ImportError: DLL load failed: The specified module could not be found.

Tags: inpyimportgetmatplotlibinitlinezmq