移动时Cx\u freeze.exe无法工作

2024-10-01 22:25:13 发布

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

我用一组脚本制作了一个cx_freexe.exe,它在原始构建文件夹中运行良好。但是,当我把它移到我们的分析计算机时,我得到了以下错误:

C:\Program Files\Davidek\Davidek beta 1.2.0>Davidek.exe
Traceback (most recent call last):
  File "C:\ProgramData\Anaconda3\lib\site-packages\cx_Freeze\initscripts\__start
up__.py", line 12, in <module>
  File "C:\ProgramData\Anaconda3\lib\site-packages\cx_Freeze\initscripts\Console
.py", line 24, in <module>
  File "Davidek.py", line 11, in <module>
  File "C:\Users\Max\Scilifelab\Projects\Master thesis\Davidek\Code\TICwriter.py
", line 7, in <module>
  File "C:\ProgramData\Anaconda3\lib\site-packages\matplotlib\__init__.py", line
 122, in <module>
  File "C:\ProgramData\Anaconda3\lib\site-packages\matplotlib\cbook.py", line 32
, in <module>
  File "C:\ProgramData\Anaconda3\lib\site-packages\numpy\__init__.py", line 142,
 in <module>
  File "C:\ProgramData\Anaconda3\lib\site-packages\numpy\add_newdocs.py", line 1
3, in <module>
  File "C:\ProgramData\Anaconda3\lib\site-packages\numpy\lib\__init__.py", line
8, in <module>
  File "C:\ProgramData\Anaconda3\lib\site-packages\numpy\lib\type_check.py", lin
e 11, in <module>
  File "C:\ProgramData\Anaconda3\lib\site-packages\numpy\core\__init__.py", line
 14, in <module>
ImportError: DLL load failed: The specified module could not be found.

C:\Program Files\Davidek\Davidek beta 1.2.0>PAUSE
Press any key to continue . . .

这就是密码”TICwriter.py“这似乎导致了问题:

^{pr2}$

在我看来,matplotlib导致了问题,因为错误发生在第7行:

import matplotlib

我的构建脚本如下所示:

import sys
from os import environ
from os.path import dirname
from cx_Freeze import setup, Executable
import scipy
scipy_path = dirname(scipy.__file__)


# Set the TCL and TK library explicitly (it seems like the python 3.6 causes
# errors otherwise):
environ['TCL_LIBRARY'] = r'C:\ProgramData\Anaconda3\tcl\tcl8.6'
environ['TK_LIBRARY'] = r'C:\ProgramData\Anaconda3\tcl\tk8.6'


#Inclusion of dll files to fix tkinter import:
include_files = [r'C:\ProgramData\Anaconda3\DLLs\tcl86t.dll', 
                 r'C:\ProgramData\Anaconda3\DLLs\tk86t.dll', 
                 scipy_path]
#Inclusion of modules that need to be explicitly imported for some reason:
packages = []#['pyteomics']

#Dependencies that are not implicitly detected:
build_exe_options = {'includes': ['numpy.core._methods', 'numpy.lib.format', 'numpy.matlib'], 
                     'excludes': [],
                     'include_files': include_files, 
                     'packages': packages}

# GUI applications require a different base on Windows (the default is for a
# console application).
base = "Console"

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

setup(  name = 'Davidek beta 1.1.1',
        version = '1.1.1',
        options = {'build_exe': build_exe_options},
        executables = [Executable('Davidek.py', base=base)])

在我看来,.exe试图从创建可执行文件的计算机的原始文件夹中查找matplotlib模块,即使matplotlib包含在构建文件夹中。无论何时从原始计算机上运行.exe,它都能正常运行,即使我将生成从原始文件夹中移走。在Windows上使用6.6位python。如有任何建议,我们将不胜感激。如果需要更多信息,请告诉我。在

谢谢。在


Tags: inpyimportnumpymatplotliblibpackagesline
1条回答
网友
1楼 · 发布于 2024-10-01 22:25:13

我设法解决了这个问题,因此我们为将来有此问题的任何人提供帮助:可以通过将以下文件从“C:\ProgramData\Anaconda3\Library\bin”(或“…\Anaconda3\Library\bin”)复制到您的构建文件夹来解决:

  • mkl公司_核心.dll在
  • mkl\U英特尔_线程.dll在
  • mkl公司_定义.dll在
  • 力比奥普5md.dll在

相关问题 更多 >

    热门问题