前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python的tkinter模块的导入_numpy scipy

python的tkinter模块的导入_numpy scipy

作者头像
全栈程序员站长
发布2022-09-28 10:55:59
1.2K0
发布2022-09-28 10:55:59
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

在python项目使用cxfreeze进行打包的时候,如果 脚本里包括numpy的引用时,在打包时会报

importError: cannot import name ‘_methods’ from ‘numpy.core’ 的错误,这时,在打包的setup.py文件中加入整个包numpy的引用即可

代码语言:javascript
复制
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())

python的tkinter模块的导入_numpy scipy
python的tkinter模块的导入_numpy scipy

这时就能看见自己缺少的文件,一般缺少的都是dll文件,这时在自己安装Python的路径下,进入\Library\bin中,或者进入\Dlls文件找到自己缺少的dll文件,加入到自己的生成exe的同级路径下,就可以运行了

python的tkinter模块的导入_numpy scipy
python的tkinter模块的导入_numpy scipy
python的tkinter模块的导入_numpy scipy
python的tkinter模块的导入_numpy scipy

如果想要在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) ])

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/179092.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年8月30日 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档