大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
在python项目使用cxfreeze进行打包的时候,如果 脚本里包括numpy的引用时,在打包时会报
importError: cannot import name ‘_methods’ from ‘numpy.core’ 的错误,这时,在打包的setup.py文件中加入整个包numpy的引用即可
packages = ["numpy"]
options = {"build_exe": {"includes": includes, "include_files": include_files, "packages"
这时,发布完成的exe文件会发生闪退事件,进不去程序,这时因为用cxfreeze把numpy库编译成pyc文件时会少编译几个文件,导致闪退。这时可以通过创建一个python文件查看闪退的原因,缺少哪个文件:
import os
result=os.popen(r”C:\ProgramData\Anaconda3\Scripts\build\exe.win-amd64-3.7\etMain.exe”) #自己打包成功之后exe的绝对路径
print(result.read())
这时就能看见自己缺少的文件,一般缺少的都是dll文件,这时在自己安装Python的路径下,进入\Library\bin中,或者进入\Dlls文件找到自己缺少的dll文件,加入到自己的生成exe的同级路径下,就可以运行了
如果想要在cxfreeze打包时直接自动加入到发布包中,可以将缺少的dll文件加入到setup.py中
#!/usr/bin/python
#coding=utf-8
import sys
import traceback
import os
from cx_Freeze import setup, Executable
import msilib
os.environ[‘TCL_LIBRARY’] = ‘C:\\ProgramData\\Anaconda3\\tcl\\tcl8’
os.environ[‘TK_LIBRARY’] = ‘C:\\ProgramData\\Anaconda3\\tcl\\tk8.6’
# Dependencies are automatically detected, but it might need fine tuning.
#中文需要显式用gbk方式编码
product_name = r’ExcleMain’
unproduct_name = ‘UninstallExcleMain’
product_desc = “ExcleMain Ver1.0”
#uuid叫通用唯一识别码,后面再卸载快捷方式中要用到
#主程序手动命名
target_name= ‘etMain.exe’
build_exe_options = {
“include_files”:[‘C:\\ProgramData\\Anaconda3\\DLLs\\tcl86t.dll’, ‘C:\\ProgramData\\Anaconda3\\DLLs\\tk86t.dll’,’C:\\ProgramData\\Anaconda3\\mkl_intel_thread.dll’],
#包含外围的ini、jpg文件,以及data目录下所有文件,以上所有的文件路径都是相对于cxsetup.py的路径。
“packages”: [‘numpy’], #包含用到的包
“includes”: [],
“excludes”: [],
};
setup( name = “excelMap”,
author=’auto Excel Map app’,
version = “1.0”,
description = product_desc,
options = {“build_exe”: build_exe_options},
executables = [Executable(“C:\\PyCharm\\pdf-docx\\ExcelTranslator\\ShowDIalog.py”,
targetName= target_name,icon = “C:\\ProgramData\\Anaconda3\\Scripts\\spyder.ico”,
base=base)
])
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/179092.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...