python文件打包-pyinstaller 常见问题

2024-08-23 13:48

本文主要是介绍python文件打包-pyinstaller 常见问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

python project 编译Linux的可执行版本

                                        --2017.11.18
  • 1
  • 2

1.使用工具 
pyinstaller

2.安装方法 
(1)可以直接去官网下载:http://www.pyinstaller.org/downloads.html 
(2)或者pip方式下载:pip install pyinstaller

3.编译方法 
(1)编译main.py 
pyinstaller main.py (main.py是需要编译的主程序文件,后文中main同此) 
注:编译成功后会产生两个文件夹:build和dist,可执行的版本就在dist中。 
(2)运行程序 
在/dist/main/下运行输入 ./main 就可以运行

4.遇到的问题及解决方案 
(1) 与‘ImportError: No module named _cwt’相关的问题 
‘No module named xxx’问题一般是某个包没有被打包编译,解决办法是修改main.spec文件中的hiddenimports(main.spec文件是pyinstaller main.py编译后生成的),添加上该文件的具体路径。‘_cwt’这个问题出现的比较多,应该是与python有关,不是与项目中使用的包相关。google一下就能够找到解决办法,具体解决方案如下: 
修改前: 
hiddenimports=[], 
修改后: 
hiddenimports=[‘pywt._extensions._cwt’] 
完成之后,再重新编译,运行下面的命令 
pyinstaller main.spec 
后面遇到了类似的问题:‘ImportError: No module named _THCUNN’,这个问题是与该项目具体使用的包有关,因此网上没有找到相关的答案。主要解决办法是找到名为‘_THCUNN’的文件,通过搜索发现确实存在_THCUNN.so的文件,确定该文件路径为torch/_thnn/_THCUNN.so。因此在hiddenimports中添加的东西为:torch._thnn._THCUNN。之后别忘了重新编译:pyinstaller main.spec。 
因此,遇到‘No module named xxx’问题时,修改hiddenimports是一个可以参考的解决思路。当然,并不确定是否所有类似的问题都能这样解决,这里只是提供一个解决思路。

(2) 与RuntimeError: Unable to find torch_shm_manager at /home/imaging/release_main/dist/- 
main/torch/lib/torch_shm_manager相关问题 
这个问题比较清楚,就是没有找到某个文件。解决这个问题的方法也很直接,就是将需要的文件配置到指定的路径。将torch包复制到/dist/main/路径下,再次运行就可以了。 
注:或许可以通过设置相关参数的方式将需要的torch包导入,但是这方面的信息比较少,没有查找到。 
附:如果需要debug,方便解决问题,可以将main.spec中的debug属性。 
debug=False 改为 debug=True 
后续遇到了类似的问题: 
tensorflow/contrib/util/tensorflow/contrib/framework/python/ops/_checkpoint_ops.so: cannot open shared object file: No such file or directory 
用同样的方法即可解决。

(3)特殊问题: 
Exception: Versioning for this project requires either an sdist tarball, or access to an upstream git repository. It’s also possible that there is a mismatch between the package name in setup.cfg and the argument given to pbr.version.VersionInfo. Project name mock was given, but was not able to be found. 
[2103] Failed to execute script segm_main 
该问题好像不具有一般性,没有发现一些规律,只是找到了解决方案,如下: 
文件的首行插入 
import os 
#export pbr version for tensorflow user 
os.environ["PBR_VERSION"]='3.0.1' #要去查询自己的版本

参考资料: 
https://github.com/pyinstaller/pyinstaller/issues/2883

(4)补充说明 
1)上述所有的解决过程都是针对linux下的python projects,对于windows 下的python projects是否相同,并不确定,但可以参考解决思路。 
2)pyinstaller编译后,有些库可能由于不同机器下版本不同,需要重新导入。 

3)实际上,pyinstaller的使用并不多,因此网上的资源比较少,遇到问题google上不容易找到解决方案,可以去pyinstaller的github,会有一些问题的解决方案,也可以发帖询问,在这里寻找答案更加具有针对性,具体网址:https://github.com/pyinstaller/pyinstaller/issues

url:https://blog.csdn.net/laocaibcc229/article/details/78570017

这篇关于python文件打包-pyinstaller 常见问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/1099555

相关文章

Python FastMCP构建MCP服务端与客户端的详细步骤

《PythonFastMCP构建MCP服务端与客户端的详细步骤》MCP(Multi-ClientProtocol)是一种用于构建可扩展服务的通信协议框架,本文将使用FastMCP搭建一个支持St... 目录简介环境准备服务端实现(server.py)客户端实现(client.py)运行效果扩展方向常见问题结

详解如何使用Python构建从数据到文档的自动化工作流

《详解如何使用Python构建从数据到文档的自动化工作流》这篇文章将通过真实工作场景拆解,为大家展示如何用Python构建自动化工作流,让工具代替人力完成这些数字苦力活,感兴趣的小伙伴可以跟随小编一起... 目录一、Excel处理:从数据搬运工到智能分析师二、PDF处理:文档工厂的智能生产线三、邮件自动化:

Swagger在java中的运用及常见问题解决

《Swagger在java中的运用及常见问题解决》Swagger插件是一款深受Java开发者喜爱的工具,它在前后端分离的开发模式下发挥着重要作用,:本文主要介绍Swagger在java中的运用及常... 目录前言1. Swagger 的主要功能1.1 交互式 API 文档1.2 客户端 SDK 生成1.3

Python实现自动化Word文档样式复制与内容生成

《Python实现自动化Word文档样式复制与内容生成》在办公自动化领域,高效处理Word文档的样式和内容复制是一个常见需求,本文将展示如何利用Python的python-docx库实现... 目录一、为什么需要自动化 Word 文档处理二、核心功能实现:样式与表格的深度复制1. 表格复制(含样式与内容)2

python获取cmd环境变量值的实现代码

《python获取cmd环境变量值的实现代码》:本文主要介绍在Python中获取命令行(cmd)环境变量的值,可以使用标准库中的os模块,需要的朋友可以参考下... 前言全局说明在执行py过程中,总要使用到系统环境变量一、说明1.1 环境:Windows 11 家庭版 24H2 26100.4061

java连接opcua的常见问题及解决方法

《java连接opcua的常见问题及解决方法》本文将使用EclipseMilo作为示例库,演示如何在Java中使用匿名、用户名密码以及证书加密三种方式连接到OPCUA服务器,若需要使用其他SDK,原理... 目录一、前言二、准备工作三、匿名方式连接3.1 匿名方式简介3.2 示例代码四、用户名密码方式连接4

Python中文件读取操作漏洞深度解析与防护指南

《Python中文件读取操作漏洞深度解析与防护指南》在Web应用开发中,文件操作是最基础也最危险的功能之一,这篇文章将全面剖析Python环境中常见的文件读取漏洞类型,成因及防护方案,感兴趣的小伙伴可... 目录引言一、静态资源处理中的路径穿越漏洞1.1 典型漏洞场景1.2 os.path.join()的陷

Python数据分析与可视化的全面指南(从数据清洗到图表呈现)

《Python数据分析与可视化的全面指南(从数据清洗到图表呈现)》Python是数据分析与可视化领域中最受欢迎的编程语言之一,凭借其丰富的库和工具,Python能够帮助我们快速处理、分析数据并生成高质... 目录一、数据采集与初步探索二、数据清洗的七种武器1. 缺失值处理策略2. 异常值检测与修正3. 数据

Python中bisect_left 函数实现高效插入与有序列表管理

《Python中bisect_left函数实现高效插入与有序列表管理》Python的bisect_left函数通过二分查找高效定位有序列表插入位置,与bisect_right的区别在于处理重复元素时... 目录一、bisect_left 基本介绍1.1 函数定义1.2 核心功能二、bisect_left 与

Python使用Tkinter打造一个完整的桌面应用

《Python使用Tkinter打造一个完整的桌面应用》在Python生态中,Tkinter就像一把瑞士军刀,它没有花哨的特效,却能快速搭建出实用的图形界面,作为Python自带的标准库,无需安装即可... 目录一、界面搭建:像搭积木一样组合控件二、菜单系统:给应用装上“控制中枢”三、事件驱动:让界面“活”