鱼C论坛

 找回密码
 立即注册
查看: 3463|回复: 16

如何将Python本身打包成一个exe

[复制链接]
发表于 2021-4-12 16:46:48 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
Python下载下来是一个文件夹,里面包含有python.exe,还有些后下载的三方库。我知道Pyinstaller可以将py脚本和Python环境一起打包成一个大的exe。那么如何实现把Python本身打包成一个大的exe呢?
例如打包成main.exe,然后在cmd中执行"main script.py” 可以达到和在cmd中执行“python scrip.py”一样的效果。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-4-12 17:05:08 | 显示全部楼层
自行百度pyinstaller
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-12 17:09:24 | 显示全部楼层

如题,我知道怎么用Pyinstaller将py脚本和Python环境一起打包,这个有很多教程,我只想打包Python环境本身,这个没有找到教程。或者可能写个什么样的脚本一起打包也能实现目的,但是不知道要怎么写。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-12 17:11:59 | 显示全部楼层
本帖最后由 yuxijian2020 于 2021-4-12 17:13 编辑

python环境本身在你下python的时候就已经在python的目录里了
python目录下libs文件夹内的是静态lib
python目录下就有dll动态库
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-12 17:25:33 From FishC Mobile | 显示全部楼层
yuxijian2020 发表于 2021-4-12 17:11
python环境本身在你下python的时候就已经在python的目录里了
python目录下libs文件夹内的是静态lib
pytho ...

楼主的意思是说,如果在裸机上安装它自己制作的python安装包,那么就不用再pip各种模块了,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-12 17:29:15 | 显示全部楼层
wp231957 发表于 2021-4-12 17:25
楼主的意思是说,如果在裸机上安装它自己制作的python安装包,那么就不用再pip各种模块了,


这也简单, 不过现在都是些加了很多广告的打包软件  而且我也很久没用过了....
不过想在命令行执行的   恐怕是不行...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-12 17:32:19 | 显示全部楼层
yuxijian2020 发表于 2021-4-12 17:11
python环境本身在你下python的时候就已经在python的目录里了
python目录下libs文件夹内的是静态lib
pytho ...


感觉你可能没看明白我想实现什么目的我不太懂原理,Pyinstaller的打包可选2种,一个是打包成一个文件夹,里边有pyd,dll等,一个是打包成一个大的exe,这种打包方法的好处是不容易被随意改动,例如里面的某个文件被挪了个位置;坏处是不灵活。我想实现的类似第二种,python本身安装完是一个文件夹的,我想把它打包成一个大的exe,并且不是用类似python-embedded的那种。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-12 17:41:03 | 显示全部楼层
本帖最后由 FC的注册很坑 于 2021-4-12 17:42 编辑
wp231957 发表于 2021-4-12 17:25
楼主的意思是说,如果在裸机上安装它自己制作的python安装包,那么就不用再pip各种模块了,


对对对,在OS相同的情况下,直接把exe拷贝过去就可以命令行运行py脚本的那种
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-12 19:41:51 | 显示全部楼层
FC的注册很坑 发表于 2021-4-12 17:41
对对对,在OS相同的情况下,直接把exe拷贝过去就可以命令行运行py脚本的那种

我没见过这种需求的,不过这个原理和你把.py打包成单文件是一样的,看似可行看似灵活,其实每次运行的时候它会先解压然后寻找依赖   那你的文件运行速度就不堪入目了  可能5分钟才能运行的起来....
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-16 10:37:52 | 显示全部楼层
yuxijian2020 发表于 2021-4-12 19:41
我没见过这种需求的,不过这个原理和你把.py打包成单文件是一样的,看似可行看似灵活,其实每次运行的时 ...

这样么但还是想实现看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-16 11:47:46 From FishC Mobile | 显示全部楼层
本帖最后由 hrp 于 2021-4-16 11:50 编辑
FC的注册很坑 发表于 2021-4-16 10:37
这样么但还是想实现看看


写个py文件a,调用python执行外部py文件,将a用pyinstaller打包成单文件,应该可以实现的,不过启动速度是个大问题。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-16 14:50:32 | 显示全部楼层
hrp 发表于 2021-4-16 11:47
写个py文件a,调用python执行外部py文件,将a用pyinstaller打包成单文件,应该可以实现的,不过启动速 ...

有考虑过,不知道这个py文件要怎么写,我随便写了个函数,发现不行的。如果文件里用到了原本的python.exe,但新环境里又没有python.exe。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-16 14:52:00 From FishC Mobile | 显示全部楼层
本帖最后由 hrp 于 2021-4-16 22:23 编辑
FC的注册很坑 发表于 2021-4-16 14:50
有考虑过,不知道这个py文件要怎么写,我随便写了个函数,发现不行的。如果文件里用到了原本的python.exe ...


手机测试不了,如果不行的话我晚上再试试

PS: 试了,行不通
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-16 15:44:09 | 显示全部楼层
hrp 发表于 2021-4-16 14:52
手机测试不了,如果不行的话我晚上再试试

我测试过了不太行报错“LoadLibrary: 页面文件太小,无法完成操作”,什么鬼
感谢,我先学习学习大佬的思路
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-16 22:25:46 | 显示全部楼层
本帖最后由 hrp 于 2021-4-17 13:36 编辑
FC的注册很坑 发表于 2021-4-16 15:44
我测试过了不太行报错“LoadLibrary: 页面文件太小,无法完成操作”,什么鬼
感谢,我先学习 ...


我试了下,行不通,打包后sys.executable获取的不是python.exe的路径,是打包后exe的路径。

而且你最好清除一下系统的临时文件,可能有很多,这是我的错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-18 16:21:40 | 显示全部楼层
hrp 发表于 2021-4-16 22:25
我试了下,行不通,打包后sys.executable获取的不是python.exe的路径,是打包后exe的路径。

而且你 ...

Not so easy
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-12 06:27:00 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-15 20:57

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表