使用pyinstaller 如何打包python项目

参考:【python项目正确打包方法-哔哩哔哩】 https://b23.tv/EDB6zbG

Pyinstaller 详解多种打包过程(去坑,填坑)。_pyinstaller -f -w-CSDN博客

1.打开命令提示符:

找到python项目所在位置,输入cmd即可

2. 安装pipenv:

在命令提示符:pip3 install pipenv

启动pipenv shell:

项目文件夹会出现:

 终端会出现:表示进入环境

3.在该环境中安装pyinstaller包和要打包的项目所需的其他包:

pip install pyinstaller

4.在该环境中输入:

pyinstaller xx.py

xx.py需要替换成自己项目的文件,这个文件需要执行整个模块的代码。

这里写的是xx.py在根目录的情况,酌情修改。

运行之后会生成dist,build文件,以及xx.spec。

5.修改xx.spec文件

a = Analysis(
    ['xx.py','CRF.py'],  写出项目中所有python文件的地址。


    pathex=[
        r'C:\Users\.virtualenvs\07_information_extraction-D51dpJc6\Lib\site-packages',
        r'D:\opencv\07_information_extraction'
    ],

第一个地址:07_information_extraction-D51dpJc6对应pipenv shell启动的环境,一般都在用户文件夹。

  • C:\Users\<用户名>:这是Windows系统中用户的主目录路径,<用户名>代表当前登录的用户名。
  • .virtualenvs:这通常是一个用户自定义的文件夹,用于存放所有的Python虚拟环境。不同的用户可能会选择不同的位置或命名方式来存放这些虚拟环境,但.virtualenvs是一个常见的选择。
  • 07_information_extraction-D51dpJc6:这是虚拟环境的名称和文件夹名。通常,虚拟环境的名称会反映其用途或与之关联的项目名称。D51dpJc6可能是一个随机生成的字符串,用于确保虚拟环境名称的唯一性,尤其是在自动化创建虚拟环境的场景中。
  • Lib\site-packages:这是Python中用于存储第三方库和模块的标准目录。在虚拟环境中,这个目录被用来隔离项目依赖,确保每个项目都有自己独立的Python环境,从而避免版本冲突等问题。

C:\Users\<用户名>\.virtualenvs\07_information_extraction-D51dpJc6\Lib\site-packages 就是你当前激活的名为07_information_extraction-D51dpJc6的Python虚拟环境中,所有第三方库和模块的存放位置。在这个目录下,你可以找到步骤3通过pip install等命令安装的库和模块。

第二个地址:python项目的根目录。


    datas=[(源路径,目标路径)
    ],源路径是打包前文件或目录的位置,目标路径是这些文件或目录在打包后的应用程序中相对于其根目录的位置。

作用是添加python项目文件中非py格式文件。

比如项目文件中存在:

代码中存在ner = CRF_NER(data_dir='07_information_extraction/data/'),

则:a = Analysis( # ... 其他参数 ... datas=[ (r'data', '07_information_extraction/data'))

或者

在源代码中修改:(这种写法更好,因为打包后的应用程序可能不会运行在你预期的目录中,或者打包工具可能没有正确处理这些路径。)

import os

base_dir = os.path.dirname(os.path.abspath(__file__))  # 获取当前脚本的目录  

data_dir = os.path.join(base_dir, 'data\\')  

print("dara",data_dir)

或者 直接把这类资源文件

6.在该环境中输入

pyinstaller xx.spec

7.打开dist/xx/下的xx.exe文件并运行。

如果出现闪退:

可以使用录屏的方式录下报错,然后修改。

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

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

相关文章

【强化学习的数学原理】课程笔记--2(贝尔曼最优公式,值迭代与策略迭代)

目录 贝尔曼最优公式最优 Policy求解贝尔曼最优公式求解最大 State Value v ∗ v^* v∗根据 v ∗ v^* v∗ 求解最佳 Policy π ∗ \pi^* π∗一些证明过程 一些影响 π ∗ \pi^* π∗ 的因素如何让 π ∗ \pi^* π∗ 不 “绕弯路” γ \gamma γ 的影响reward 的影响 值迭…

UiPath+Appium实现app自动化测试

一、环境准备工作 1.1 完成appium环境的搭建 参考&#xff1a;pythonappiumpytestallure模拟器(MuMu)自动化测试环境搭建_appium mumu模拟器-CSDN博客 1.2 完成uipath的安装 登录官网&#xff0c;完成注册与软件下载安装。 UiPath业务自动化平台&#xff1a;先进的RPA及自动…

Visual Studio 中的键盘快捷方式

1. Visual Studio 中的键盘快捷方式 1.1. 可打印快捷方式备忘单 1.2. Visual Studio 的常用键盘快捷方式 本部分中的所有快捷方式都将全局应用&#xff08;除非另有指定&#xff09;。 “全局”上下文表示该快捷方式适用于 Visual Studio 中的任何工具窗口。 生成&#xff1…

第十四章 集合(List)

一、集合框架体系 集合&#xff1a; &#xff08;1&#xff09;可以动态保存任意多个对象 &#xff08;2&#xff09;提供了一系列方便的操作对象的方法 二、Collection 1. Collection 接口常用方法 &#xff08;1&#xff09;add&#xff1a;添加单个元素 &#xff08;2…

Cypress测试:7个快速解决问题的调试技巧!

以下为作者观点&#xff1a; 快速编写代码是一项宝贵的技能&#xff0c;但能够有效调试和解决错误和bug&#xff0c;更是一个软件开发人员具有熟练技能的标志。调试是开发过程中的一个关键环节&#xff0c;可以确保软件按预期运行并满足用户需求。 Cypress 调试简介 Cypress …

【Linux】—Xshell、Xftp安装

文章目录 前言一、下载Xshell、Xftp二、安装Xshell三、使用XShell连接Linux服务器四、修改windows的主机映射文件&#xff08;hosts文件&#xff09;五、远程连接hadoop102/hadoop103/hadoop104服务器六、安装Xftp 前言 XShell远程管理工具&#xff0c;可以在Windows界面下来访…

uniapp + vue3 + Script Setup 写法变动 (持续更新)

一、uniapp 应用生命周期&#xff1a; https://uniapp.dcloud.net.cn/tutorial/vue3-composition-api.html 注意&#xff1a; 应用生命周期仅可在App.vue中监听&#xff0c;在其它页面监听无效。 二 、uniapp页面生命周期&#xff1a; https://uniapp.dcloud.net.cn/tutori…

3.js - 色调映射(renderer.toneMapping)

// ts-nocheck// 引入three.js import * as THREE from three// 导入轨道控制器 import { OrbitControls } from three/examples/jsm/controls/OrbitControls// 导入lil.gui import { GUI } from three/examples/jsm/libs/lil-gui.module.min.js// 导入tween import * as TWEEN…

昇思25天学习打卡营第11天|基于MindSpore通过GPT实现情感分类

学AI还能赢奖品&#xff1f;每天30分钟&#xff0c;25天打通AI任督二脉 (qq.com) 基于MindSpore通过GPT实现情感分类 %%capture captured_output # 实验环境已经预装了mindspore2.2.14&#xff0c;如需更换mindspore版本&#xff0c;可更改下面mindspore的版本号 !pip uninsta…

【目标检测】DINO

一、引言 论文&#xff1a; DINO: DETR with Improved DeNoising Anchor Boxes for End-to-End Object Detection 作者&#xff1a; IDEA 代码&#xff1a; DINO 注意&#xff1a; 该算法是在Deformable DETR、DAB-DETR、DN-DETR基础上的改进&#xff0c;在学习该算法前&#…

决策树算法的原理与案例实现

一、绪论 1.1 决策树算法的背景介绍 1.2 研究决策树算法的意义 二、决策树算法原理 2.1 决策树的基本概念 2.2 决策树构建的基本思路 2.2 决策树的构建过程 2.3 决策树的剪枝策略 三、决策树算法的优缺点 3.1 决策树算法的优势 3.2 决策树算法的局限性 3.3 决策树算…

Vue报错:Component name “xxx” should always be multi-word vue/multi-word-component

问题&#xff1a;搭建脚手架时报错&#xff0c;具体错误如下&#xff1a; ERROR in [eslint] E:\personalProject\VueProjects\vueproject2\src\components\Student.vue10:14 error Component name "Student" should always be multi-word vue/multi-word-compon…

【分布式数据仓库Hive】常见问题及解决办法

目录 一、启动hive时发现log4j版本和hadoop的版本有冲突 解决办法&#xff1a;删除hive下高版本的slf4j 二、启动hive报错 Exception in thread "main" java.lang.NoSuchMethodError:com.google.common.base.Preconditions.checkArgument(ZLjava/lang/Object;)V …

Elasticsearch (1):ES基本概念和原理简单介绍

Elasticsearch&#xff08;简称 ES&#xff09;是一款基于 Apache Lucene 的分布式搜索和分析引擎。随着业务的发展&#xff0c;系统中的数据量不断增长&#xff0c;传统的关系型数据库在处理大量模糊查询时效率低下。因此&#xff0c;ES 作为一种高效、灵活和可扩展的全文检索…

分别使用netty和apache.plc4x测试读取modbus协议的设备信号

记录一下常见的工业协议数据读取方法 目录 前言Modbus协议说明Netty 读取测试使用plc4x 读取测试结束语 前言 Modbus 是一种通讯协议&#xff0c;用于在工业控制系统中进行数据通信和控制。Modbus 协议主要分为两种常用的变体&#xff1a;Modbus RTU 和 Modbus TCP/IP Modbus …

嵌入式Linux之Uboot简介和移植

uboot简介 uboot 的全称是 Universal Boot Loader&#xff0c;uboot 是一个遵循 GPL 协议的开源软件&#xff0c;uboot是一个裸机代码&#xff0c;可以看作是一个裸机综合例程。现在的 uboot 已经支持液晶屏、网络、USB 等高级功能。 也就是说&#xff0c;可以在没有系统的情况…

苹果手机收不到短信怎么恢复?90%的人都在这么做

在使用苹果手机的过程中&#xff0c;有时候会遇到无法接收短信的问题。这不仅影响正常的沟通&#xff0c;还可能错过重要的通知和验证码。那么&#xff0c;手机收不到短信怎么恢复呢&#xff1f;别担心&#xff0c;90%的人都在使用这些简单而有效的方法来解决这一问题。 本文将…

Halcon支持向量机

一 支持向量机 1 支持向量机介绍&#xff1a; 支持向量机(Support Vector Machine&#xff0c;SVM)是Corinna Cortes和Vapnik于1995年首先提出的&#xff0c;它在解决小样本、非线性及高维模式识别表现出许多特有的优势。 2 支持向量机原理: 在n维空间中找到一个分类超平面…

14 卡尔曼滤波及代码实现

文章目录 14 卡尔曼滤波及代码实现14.0 基本概念14.1 公式推导14.2 代码实现 14 卡尔曼滤波及代码实现 14.0 基本概念 卡尔曼滤波是一种利用线性系统状态方程&#xff0c;通过系统输入输出观测数据&#xff0c;对系统状态进行最优估计的算法。由于观测数据包括系统中的噪声和…

React Native V0.74 — 稳定版已发布

嗨,React Native开发者们, React Native 世界中令人兴奋的消息是,V0.74刚刚在几天前发布,有超过 1600 次提交。亮点如下: Yoga 3.0New Architecture: Bridgeless by DefaultNew Architecture: Batched onLayout UpdatesYarn 3 for New Projects让我们深入了解每一个新亮点…