关于cinrad库打包exe文件过程中遇到的问题

说明:本文只针对本人在处理过程遇到的问题,仅供参考,在参考过程中需要注意路径替换为自己的文件的绝对路径

首先需要在指定的环境下安装pyinstaller库,使用清华源会大大提高下载速度

pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple

对需要处理的代码进行打包,本文以使用demo_ppi.py文件绘制雷达反射率图片举例,在终端窗口执行指令

pyinstaller -F demo_ppi.py

demo_ppi.py内容如下:

import os
import sys
from cinrad.io import StandardData
from cinrad.visualize import PPI


def ppi(file_dir):
    file_name = os.path.basename(file_dir)
    f = StandardData(file_dir)
    ref = f.get_data(0, 150, 'REF')
    fig = PPI(ref)
    fig(file_name[:-8] + '.png')
    return ref['REF'].values,[1,2,3]


if __name__ == '__main__':
    file_dir = sys.argv[1]
    # file_dir = 'Z_RADR_I_Z9543_20220419014212_O_DOR_SA_CAP_FMT.bin.bz2'
    value = ppi(file_dir)

会在demo_ppi.py的同级目录下生成disk文件夹,在其中的demo_ppi文件夹下会生成demo_ppi.exe可执行文件

 运行sample.py调用exe可执行文件会报错

 sample.py代码如下,exe_dir需替换成对应的绝对路径

import subprocess


def test_exe(file_dir):
    command = [r'exe_dir\demo_ppi.exe', file_dir]
    subprocess.check_output(command)


if __name__ == '__main__':
    file_dir = 'Z_RADR_I_Z9543_20220419014212_O_DOR_SA_CAP_FMT.bin.bz2'
    test_exe(file_dir)

报错原因分析:

没有将radar_station.json文件正确的打包进可执行文件中去,执行以下代码重新打包。注意:不可使用-F进行打包,会找不到json文件的目录,重新打包指令替换如下,前部分是json文件路径,后部分是py文件路径

pyinstaller --add-data "D:/anaconda3/envs/xgb/cinrad/data/radar_station.json;." E:/PycharmProjects/16tmp_demo/demo_ppi.py

再次执行仍会报错

 此时只需要将对应D:/anaconda3/envs/xgb/cinrad下的data文件夹拷贝至生成的disk文件夹下的cinrad文件夹里面即可

再次执行sample.py即可完美运行!

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值