pyinstaller—PuLP投标价格预算项目打包过程踩坑

Python—pyinstaller打包PuLP踩坑


引言

在昨天的文章中,我们提到已经实现了相关代码的编写,即:通过Python环境和编辑器实现代码的运行,最终实现对数据的处理,得到想要的修改过后的项目结果。但是我们又面临着这样一个问题,那就是,客户的电脑上很有可能是没有Python环境的,这就像部分计算机专业的同学,可能四年学完了,电脑上都不一定有装过任何一门编程语言的环境。所以,我们需要将本地的Python代码打包成一个exe的可执行文件,这样,就可以实现摆脱Python环境运行程序的要求。
那么,我们又该如何做呢?

必知必会

在C/C++语言中,我们在cpp文件编译之后能够自动生成exe文件;在Java中,我们可以将相关的项目代码打包成jar包,再将其转换为exe文件;在Python中,我们可以使用pyinstaller库,实现对相关代码的打包。

pyinstaller库

安装

在项目控制台或者全局cmd中输入

pip install pyinstaller

当然,如果你的网速不够块的话,你可以试试添加国内的安装镜像加速,具体的指令如下:

 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyinstaller

或者

pip3 install pyinstaller -i https://pypi.douban.com/simple/

都是可以的。

使用

安装完成后,我们开始对原本的budget_bid_price_version01.py进行打包,我是在控制台中输入了下列命令:

pyinstaller -F budget_bid_price_version01.py

然后等待一会,就得到了两个文件夹dist和build,以及一个budget_bid_price_version01.spec文件,打开dist文件夹,里面已经生成了我们所需要的exe可执行程序。正常的话,双击后运行即可。

1 pyinstaller不是内部或外部命令

先说说我自己的情况。我在本地安装了Python3.10的环境,又安装了Anaconda中的3.8的Python环境,同时在Anaconda中创建了3.7、3.9以及一个提供给其他专门项目的虚拟环境,在创建我们当前的项目时又激活了一个项目的虚拟环境。
是的,我的电脑里Python环境有点混乱,所以“pyinstaller不是内部或外部命令”这个坑把我按在地上摩擦了一天,最后,我决定,重装Python环境,同时也卸载了Anaconda,毕竟我发现我基本不太使用这个。
重装的速度还是很快的。重新按照Python之后,我直接将本地的项目环境配置为全局的环境,安装了pyinstaller,之后在控制台中输入了

pyinstaller -F budget_bid_price_version01.py

得到了exe文件

2 ModuleNotFoundError:No module named ‘xxx’

在运行时,我们发现了这个报错,是的,我们的打包过程中没有把原本程序中应该有的几个库一同打包,具体如何解决我也不知道,因为我后来又试了几次,发现可以运行了,不过大家可以参考文章末的几篇相关博客。
在这里插入图片描述

3 AttributeError:‘NoneType’ object has no attribute ‘actualSolve’

在这里插入图片描述
这个报错是因为打包PuLP时没有把求解器也打包进去导致的(应该是这个原因),我们可以在项目的环境里找到一个cbc.exe,
相对本项目的地址为:

"budgetBidPrice\env\envs\Lib\site-packages\pulp\solverdir\cbc\win\64\cbc.exe"

将其提取出来放置到与代码同级的目录下
在这里插入图片描述

同时修改一下代码:

MyProblem.solve()

改为

currentpath = os.getcwd()
solverpath = os.path.join(currentpath,'cbc.exe')
MyProblem.solve(COIN_CMD(path=solverpath)) 

即可。
然后继续按照上面的打包方式进行打包,并将cbc.exe复制到dist文件夹下,此时得到的exe文件应该就可以正常运行了,至少我的是可以正常运行了。
在这里插入图片描述
此处的main.exe是我修改了名字后的文件,毕竟每次都得输入那么长的文件名着实有点长。


附录:
PyInstaller如何将依赖文件打包到exe可执行程序中
pyinstaller打包exe程序步骤和添加依赖文件方法
我尝试创建一个 exe 文件,该文件使用 Pyinstaller 创建具有组合优化 (Pulp) 的容器交付计划
关于python线性规划包pulp在运行时出现找不到cbc的问题
Python:PuLP模块中没有所有求解器


以上就是这个投标价格修改从开发到打包的所有主要流程。欢迎大家持续关注。

关于代码的使用与二次修改,请遵守MIT.LICENSE开源协议,本人保留著作权等相关法律权利。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RK3588平台开发系列讲解(视频篇)RKMedia框架

文章目录 一、 RKMedia框架介绍二、 RKMedia框架API三、 视频处理流程四、venc 测试案例沉淀、分享、成长,让自己和他人都能有所收获!😄 📢RKMedia是RK提供的一种多媒体处理方案,可实现音视频捕获、音视频输出、音视频编解码等功能。 一、 RKMedia框架介绍 功能: VI(输…

响应式Web开发项目教程(HTML5+CSS3+Bootstrap)第2版 例5-3 getBoundingClientRect()

代码 <!doctype html> <html> <head> <meta charset"utf-8"> <title>getBoundingClientRect()</title> </head> <script>function getRect(){var obj document.getElementById(example); //获取元素对象var objR…

什么是数据库的三级模式两级映象?

三级模式两级映象结构图 概念 三级模式 内模式&#xff1a;也称为存储模式&#xff0c;是数据物理结构和存储方式的描述&#xff0c;是数据在数据库内部的表示方式。定义所有的内部记录类型、索引和文件组织方式&#xff0c;以及数据控制方面的细节。模式&#xff1a;又称概念…

第十八讲_HarmonyOS应用开发实战(实现电商首页)

HarmonyOS应用开发实战&#xff08;实现电商首页&#xff09; 1. 项目涉及知识点罗列2. 项目目录结构介绍3. 最终的效果图4. 部分源码展示 1. 项目涉及知识点罗列 掌握HUAWEI DevEco Studio开发工具掌握创建HarmonyOS应用工程掌握ArkUI自定义组件掌握Entry、Component、Builde…

数据目录驱动测试——深入探讨Pytest插件 pytest-datadir

在软件测试中,有效管理测试数据对于编写全面的测试用例至关重要。Pytest插件 pytest-datadir 提供了一种优雅的解决方案,使得数据目录驱动测试变得更加简单而灵活。本文将深入介绍 pytest-datadir 插件的基本用法和实际案例,助你更好地组织和利用测试数据。 什么是pytest-da…

Maven入门及其使用

目录 一、Maven入门 1.1 初识Maven 1.2 Maven的作用 1.2.1 依赖管理 1.2.2 统一项目结构 1.2.3 项目构建 1.3 Maven坐标 1.4 Maven仓库 1.4.1 Maven仓库概述 二、Maven的下载与安装 2.1 安装步骤 2.1.1 解压安装&#xff08;建议解压到没有中文、特殊字符的路径下。&#xff09…

基于 java+springboot+mybatis电影售票网站管理系统前台+后台设计和实现

基于 javaspringbootmybatis电影售票网站管理系统前台后台设计和实现 &#x1f345; 作者主页 央顺技术团队 &#x1f345; 欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; &#x1f345; 文末获取源码联系方式 &#x1f4dd; &#x1f345; 查看下方微信号获取联系方式 承…

力扣hot100 字符串解码 栈 辅助栈

Problem: 394. 字符串解码 文章目录 思路&#x1f496; 辅助栈 思路 &#x1f468;‍&#x1f3eb; 路飞 &#x1f496; 辅助栈 ⏰ 时间复杂度: O ( n ) O(n) O(n) &#x1f30e; 空间复杂度: O ( n ) O(n) O(n) class Solution {public String decodeString(String s…

华为二层交换机与防火墙配置上网示例

二层交换机与防火墙对接上网配置示例 组网图形 图1 二层交换机与防火墙对接上网组网图 二层交换机简介配置注意事项组网需求配置思路操作步骤配置文件相关信息 二层交换机简介 二层交换机指的是仅能够进行二层转发&#xff0c;不能进行三层转发的交换机。也就是说仅支持二层…

力扣日记1.27-【回溯算法篇】131. 分割回文串

力扣日记&#xff1a;【回溯算法篇】131. 分割回文串 日期&#xff1a;2023.1.27 参考&#xff1a;代码随想录、力扣 131. 分割回文串 题目描述 难度&#xff1a;中等 给你一个字符串 s&#xff0c;请你将 s 分割成一些子串&#xff0c;使每个子串都是 回文串 。返回 s 所有可…

常量和C预处理器

本文参考C Primer Plus第四章 文章目录 符号常量printf()函数和scanf()函数 printf()函数使用printf()printf()的转换说明修饰符 1.符号常量 C头文件limits.h和float.h分别提供了与整数类型和浮点类型大小限制相关的详细信息。头文件都定义了一系列供实现使用的符号常量。例如&…

腾讯云幻兽帕鲁4核16G14M服务器性能测评和价格

腾讯云幻兽帕鲁服务器4核16G14M配置&#xff0c;14M公网带宽&#xff0c;限制2500GB月流量&#xff0c;系统盘为220GB SSD盘&#xff0c;优惠价格66元1个月&#xff0c;277元3个月&#xff0c;支持4到8个玩家畅玩&#xff0c;地域可选择上海/北京/成都/南京/广州&#xff0c;腾…

网络安全02--负载均衡下的webshell连接

目录 一、环境准备 1.1ubentu虚拟机一台&#xff0c;docker环境&#xff0c;蚁剑 1.2环境压缩包&#xff08;文件已上传资源&#xff09;&#xff1a; 二、开始复原 2.1上传ubentu&#xff1a; 2.2解压缩 2.3版本20没有docker-compose手动下载&#xff0c;包已上传资源 …

uniapp复选框 实现排他选项

选择了排他选项之后 复选框其他选项不可以选择 <view class"reportData" v-for"(val, index) in obj" :key"index"> <view v-if"val.type 3" ><u-checkbox-group v-model"optionValue" placement"colu…

物联网协议Coap之C#基于Mozi的CoapClient调用解析

目录 前言 一、CoapClient相关类介绍 1、CoapClient类图 2、CoapClient的设计与实现 3、SendMessage解析 二、Client调用分析 1、创建CoapClient对象 2、实际发送请求 3、Server端请求响应 4、控制器寻址 总结 前言 在之前的博客内容中&#xff0c;关于在ASP.Net Co…

MongoDB实战

1.MongoDB介绍 1.1 什么是MongoDB MongoDB是一个文档数据库&#xff08;以JSON 为数据模型&#xff09;&#xff0c;由C语言编写&#xff0c;旨在为WEB应用提供可扩展的高性能数据存储解决方案。 文档来自于"JSON Document"&#xff0c;并非我们一般理解的 PDF&…

以太网交换基础VLAN原理与配置

目录 7.以太网交换基础 7.1.以太网协议 7.2.以太网帧介绍 7.3.以太网交换机 7.4.同网段数据通信全过程 8.VLAN原理与配置 8.1.VLAN的基本概念 8.2.VLAN的应用 7.以太网交换基础 7.1.以太网协议 以太网是当今现有局域网(Local Area Network,LAN)采用的最通用的通信协议…

数据结构排序小结

排序类型小结 &#x1f4a6; 插入排序直接插入排序希尔排序 &#x1f4a6; 选择排序直接选择排序堆排序 &#x1f4a6; 交换排序冒泡排序快速排序&#x1f43e;霍尔版本补坑位版本前后指针版本非递归版本 &#x1f4a6; 归并排序递归版本非递归版本 &#x1f4a6; 性能测试 &am…

DDPM的一点笔记

1 Title Denoising Diffusion Probabilistic Models&#xff08;Jonathan Ho、Ajay Jain、Pieter Abbeel&#xff09; 2 Conclusion This paper present high quality image synthesis results using diffusion probabilistic models, a class of latent variable models insp…

利用nginx宝塔免费防火墙实现禁止国外IP访问网站

本章教程&#xff0c;主要介绍&#xff0c;如何利用nginx宝塔面板中的插件免费防火墙&#xff0c;实现一键禁止国外IP访问网站。 目录 一、安装宝塔插件 二、 开启防火墙 一、安装宝塔插件 在宝塔面板中的软件商店&#xff0c;搜索防火墙关键词&#xff0c;找到Nginx免费防火…