mac电脑使用pyinstaller打包python脚本

pyinstaller -F template.py

出现报错"AssertionError: Executable contains code signature!"

移除签名

codesign --remove-signature /Users/f7692281/PycharmProjects/TPtestlist/transmit_v6.0.py

打包命令

pyinstaller --windowed transmit_v6.0.py

pyinstaller -w  -D transmit_v6.0.py

打包静态文件 

在网上查找了很多资料,比如将静态文件,或是引用的图片一同打包之类的,比如修改transmit_v6.0.spec里面的datas,将ip.ini文件打包进来.然后重新再次打包transmit_v6.0.spec.datas里面放置的是元祖,元祖里面的是(文件名,文件位置)

命令:

pyinstaller transmit_v6.0.spec

打包之后的效果如图,ip.ini会出现在该位置.transmit_v6.0此时是可以运行的,但是transmit_v6.0.app还是不可以运行,因为这个app里面还是不存在ip.ini,你需要手动将其放置进去.然后就可以用了

这样打包之后,发现我打包出来的APP特别的大 ,900多M......,并且将APP传给别人的电脑上面还会显示APP已经损坏.....所以最好还是创建虚拟环境,在虚拟环境里面进行打包

 创建虚拟环境步骤

1) 在某个位置创建放置虚拟环境的文件夹:env_test

2) 进入该文件夹

cd  /Users/f7692281/Desktop/env_test 

3) 创建虚拟环境,虚拟环境名为myenv

python -m venv myenv

4)激活虚拟环境 

source myenv/bin/activate

5) 在此环境下面直接安装脚本需要的第三方库 ,用镜像安装快.它提示少什么,直接装就可以了.pyinstaller也不能少.

pip install numpy  -i  https://mirrors.aliyun.com/pypi/simple
pip install pandas  -i  https://mirrors.aliyun.com/pypi/simple
pip install openpyxl  -i  https://mirrors.aliyun.com/pypi/simple
pip install Jinja2 -i  https://mirrors.aliyun.com/pypi/simple
pip install pyinstaller -i  https://mirrors.aliyun.com/pypi/simple

6) 打包,打包时脚本要在虚拟环境里面,所以打包时直接输入脚本名字,不要用绝对路径拖进来,会报错(不知道为啥)

pyinstaller -w -D template.py

打包资源文件 

将资源文件打包进入app,除了直接放置之外,我们可以直接打包spec文件.

pyinsatller filter_start.spec

app重设图片

  • 首先app的图片的格式必须是.icns的,其他图片格式都会出现报错.
  • 很难找到文件格式直接就是.icns的文件,所以可以直接在网上面搜索转化工具.我们可以直接下载一张png图片,让他直接转化为.icns文件.如果使用svg格式的文件转化为.icns的还是会报错.
  • 转化工具地址:PNG to ICNS | CloudConvert

 

打包出现的异常问题

  • 使用pyqt5搭建的页面,打包之后图片怎么都显示不出来

sys.path的环境变量是/Users/f7692281/PycharmProjects/filter_over_size,以filter_start为启动文件,按道理来说是可以被识别到的,但是结果就是加载不出图片文件.所以只好用下下策,直接使用绝对路径,然后可以了.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值