[问题] pyinstaller 打包package问题

楼主: tonykai (阿钙钙~)   2023-09-07 20:29:43
不好意思想请问板上各位高手
最近接手一个python程式的维护
但特殊的地方是当初开发的人(已毕业)他当初是把python.exe跟其它需要的package打包
成新的’python_new.exe’
因为这一个程式很常需要复制到不同的电脑(没网络)上run,他直接写一个batch里面只有
一行‘python_new.exe main.py’去执行主要程式’main.py’
看当初那个学长的纪录是’用pyinstaller 把pandas,numpy 打包成python_new.exe’然后
就没有其他讯息了…
想请问板上各位高手们这个大概是怎么做到的啊@@?
小弟目前有试过把下面的code存成‘python_new.py’:
import sys, subprocess
subprocess.call([‘python’, sys.argv[1])
然后下’pyinstaller -d=all -F python_new.py’
但新的’python_new.exe’在没网络跟python的电脑上跑起来就会一直看到LOADER的字眼但
就是不会启动,跑了半小时还是一直疯狂跳出LOADER跟_frozen什么的…….
作者: lycantrope (阿宽)   2023-09-08 07:33:00
用embedded python
作者: leolarrel (真.粽子无双)   2023-09-08 13:10:00
私心认为应该有很多讯息只是你看不懂所以都ignore ...那个LOADER讯息 后面接的是什么?
作者: yiche (你若安好,便是晴天)   2023-09-08 21:47:00
比较喜欢nuitka 包起来比较小包也比较快
作者: s860134 (s860134)   2023-09-10 04:25:00
通灵 debug. 这位学者其实没做啥事,你的 main.py 被当作参数丢进 pyinstaller 打包的 python 作为第一个参数带入他就跟你在一般电脑下 python main.py 没啥不一样比较大的问题是 pyinstaller 执行前会把 python 档案解压到 tmp 里面去执行,很可能是路径问题,你尝试带绝对路径而不是 main.py类似: python_new.exe C:\tmp\main.py
作者: fragmentwing (片翼碎梦)   2023-09-13 17:44:00
楼上大大倒是解了我的疑惑 常常看到包失败的话会跑到那边执行就感到很奇怪不过这样的话就代表打包要用绝对路径然后在别的电脑上要确保路径一致?(比方说尽量包的时候是在桌面开一个folder给它包然后新机上也是桌面开一个同名folder执行)
作者: s860134 (s860134)   2023-09-14 00:47:00
跟你写的 python_new.py 有关你上面这些逻辑就包含着要把相对路径转换成绝对路径来找到档案

Links booklink

Contact Us: admin [ a t ] ucptt.com