Python打包为exe文件

news/2024/11/17 17:43:26/

前言

我们开发的python脚本一般都会用到一些第三方包,当别人需要用到我们编写的脚本时,如果我们将脚本文件发给他,他是不能直接运行去用的,他需要安装python解释器,配置相应的环境,这是相当麻烦的。那怎么办呢?我们可以将脚本和解释器打包成exe,再发给别人去使用。

PyInstaller介绍

PyInstaller是一个的打包python的py文件的库。

PyInstaller除了win32平台外还支持Linux,Unix平台 

PyInstaller本身并不是Python模块,所以安装时放到哪里都可以

优点:

  1. 可将python文件转成可执行文件
  2. 跨平台
  3. 可以选择exe文件的图标 (Windows only)

python脚本是不能脱离python解释器单独运行的,所以在打包的时候,至少会将python解释器和脚本一起打包,同样,为了打包的exe能正常运行,会把我们所有安装的第三方包一并打包到exe。

安装pyinstaller

pip install pyinstaller

使用pyinstaller进行打包

1.我习惯在Anaconda中创建虚拟环境来完成一个个的项目,所以我的PyInstaller库就直接安装在了我要打包的项目的虚拟环境(face)中

2.通过pip命令在虚拟环境中安装好包之后,通过cd命令转移到主文件所在的项目目录中,如cd C:\Users\80621\Desktop\python_learning\recongz

3.我的主文件是run.py

等待打包完成就可以了。 

 打包完成后项目文件夹中会多一个dist目录,exe文件就在其中

若项目中有文件用到了相对路径,需要把那些用到的文件再拷贝一份放到dist目录下。

查用打包命令

Pyinstaller -F setup.py 打包exe

Pyinstaller -F -w setup.py 不带控制台的打包

Pyinstaller -F -i xx.ico setup.py 指定exe图标打包

Pyinstaller -F -w -i xx.ico setup.py 指定exe图标并且不带控制台的打包

ico转换  :在线图片转icon格式 – 图片转换成icon在线工具 – 迅捷PDF转换器在线免费版

以下问题需要注意!!! 、

1)路径问题

如果你的程序中有图片等资源,是需要根据程序中的相对路径加入到dist文件中,也要在.exe同目录中加入images的文件夹(图片资源)

如果原.py程序使用了图片等素材,并且添加图片是相对路径(同一个文件夹下可以不使用绝对路径),打包文件后,需要将图片等素材拷贝一份放在打包后的文件夹下,否则运行.exe程序会找不到图片素材。

如果原.py程序使用图片添加的是绝对路径,在本地电脑上运行时可能不会发现错误。但是你将打包后的文件发给另一台机器,运行.exe程序会报错,大概意思是“根据你写的绝对路径找不到图片等素材”,即使你在文件夹下拷贝了素材,但是绝对路径也是错误的,所以,最好使用上一种方法。

2)打包的主文件问题

只能指定一个要打包的模块,也就是启动模块

发布后,可执行文件执行路径不能有中文(最好也不要有空格)

启动执行的文件中不要有下面这种判断,否则可执行文件执行会没有任何效果

  if __name__=='__main__':

将exe放到其他机子上运行,弹出“找不到msvcr100.dll“ ,手动将”msvcr100.dll“拷贝到dist目录下即可

3)养成良好习惯

写代码的时候应当养成良好的习惯,用什么函数导什么函数,不要上来就import整个库,最后你会发现你一个100KB的代码打包出来有500MB,全是库

使用Inno SetUp制作安装包_鱼生艰难啊的博客-CSDN博客_inno安装包 


http://www.ppmy.cn/news/696488.html

相关文章

网页中打开exe

网页上打开本地的exe文件,可以吗? 西蒙说:可以的。 方法如下: 1、定义一个私有协议,指向本地的那个exe 2、在网页上将此私有协议作为URL,点击之即可打开那个exe 3、URL中还可以包含参数,传递…

win10c语言文件不运行,教你解决win10系统无法打开EXE文件的问题

win10电脑上的程序一般都是exe格式的,鼠标双击一下即可运行。最近,有Win10系统的用户抱怨说竟然打不开Exe的文件,双击好多次了,甚至关机重启还是一样打不开Exe的文件,真是让人感到疑惑。其实,遇到此故障问题不必慌张,大家可以尝试按照以下的方式来解决。 方法一:更改注…

.c文件如何一步步变成.exe文件

上周我的组长问我一个问题,我没有回答出来,特地来写一篇博客记录一下。 预编译/预处理----->编译----->汇编----->链接 预编译:.c文件转换成.i文件 展开头文件/宏替换/去掉注释/条件编译 比如一个hello world程序(程…

linux服务器上怎么运行exe,用Linux服务器运行exe文件

参考百度经验:https://jingyan.baidu.com/article/63acb44ac5984f61fcc17eb9.html https://jingyan.baidu.com/article/e6c8503c4c8184e54f1a1884.html 1.安装lxde和vnc (1)第一步,更新系统: apt-get update -y apt-get upgrade -y 保证所有的软件都更新到了最新。 (2)安装工…

JavaScript 调用本地exe文件

web项目中要调第三方客户端,于是归纳整理了js调用客户端exe程序的几种方法,如下: 方法一 : 使用ActiveXObject直接执行指定路径的.exe文件 ,此方法只针对IE浏览器 <html> <head> <script language"javascript"> function Run(strPath){ try {v…

windows .exe 文件默认打开方式变成记事本的解决方法

windows .exe 文件默认打开方式变成记事本的解决方法 如果cmd.exe打不开&#xff0c;先将默认打开方式切换成cmd.exe 如果用户选择了默认的模式&#xff0c;会在注册表中写一个UserChoice的注册信息&#xff0c;优先级会高一些 OpenWithList //可打开方式列表越往上应该越高 O…

Python导出exe文件

测试环境Win10Python3.6.5pyinstaller4.2 文章目录 1.第三方库安装2.Python环境确认3.exe程序封装命令4.封装参数解析 1.第三方库安装 Python导出需要用到pyinstaller库 pyinstaller安装指令&#xff1a; pip install pyinstaller安装完成以后注意pyinstaller第三方库安装到…

exe文件在服务器上打不开,EXE格式文件打不开怎么办?三个方法教你打开

exe一种可执行文件&#xff0c;如果打不开的话一般都是因为都是上网中毒所致&#xff0c;可执行文件打不开的原因是在注册表中exe的关联参数被恶意修改了&#xff0c;那么我们该如何进行恢复呢?下面&#xff0c;小编就给大家介绍电脑EXE文件打不开的解决方法。 电脑无法打开EX…