当前位置:   article > 正文

python学习-vscode创建虚拟环境并用pyinstaller打包程序_vscode pyinstaller

vscode pyinstaller

背景:

之前学习的时候安装库太多太杂,写程序给自己运行时候尚能理清楚,现在需要给同事写一个简单的excel自动化程序,用pyinstaller打包时发现因为装的库太多打包速度太慢,于是需要用创建虚拟环境来解决。

本项目主要学习python虚拟环境的创建、pyinstaller的打包基础操作和pandas的分列功能操作

一个简单的excel单列拆分脚本

需求:将一个.xlsx文件中,按照表头为“航站”的列进行拆分,每个航站单独保存为一个csv文件,导出的csv文件名为{航站}.csv,同时里面的数据删掉“航站”列,保留其他列。

程序很简单,代码如下

  1. import pandas as pd
  2. import os
  3. def split_excel_to_csv(input_file):
  4. output_path = "航站拆分output"
  5. if not os.path.exists(output_path):
  6. os.makedirs(output_path)
  7. df = pd.read_excel(input_file)
  8. grouped_point = df.groupby([df['航站']])
  9. for name_point, group in grouped_point:
  10. group = group.drop('航站', axis=1)
  11. group.to_csv(f'{output_path}/{name_point[0]}.csv', index=False)
  12. if __name__ == "__main__":
  13. input_file = '202403-销售汇总.xlsx'
  14. split_excel_to_csv(input_file)

为了方便同事自己使用,需要将其打包为一个exe文件,当把一个xlsx文件拖入该exe文件时,将在同一个目录下生成“航站拆分output”的文件夹并将结果保存在里面。

创建并激活虚拟环境

python -m venv myenv    # 创建虚拟环境

并将当前的vscode解释器设置为虚拟环境

myenv\Scripts\activate    # 激活环境

激活后前面会有虚拟环境文件夹名字,检查pip list

可以看到目前环境没有装其他库,为了运行修改后的代码,需要安装pandas、openpyxl和pyinstaller库

  1. import pandas as pd
  2. import os
  3. import sys
  4. def split_excel_to_csv(input_file):
  5. output_path = "航站拆分output"
  6. if not os.path.exists(output_path):
  7. os.makedirs(output_path)
  8. df = pd.read_excel(input_file)
  9. grouped_point = df.groupby([df['航站']])
  10. for name_point, group in grouped_point:
  11. group = group.drop('航站', axis=1)
  12. group.to_csv(f'{output_path}/{name_point[0]}.csv', index=False)
  13. if __name__ == "__main__":
  14. if len(sys.argv) > 1:
  15. input_file = sys.argv[1]
  16. split_excel_to_csv(input_file)
  17. else:
  18. print("请拖入一个xlsx文件到这个exe文件上。")

在虚拟环境将代码打包成exe文件

在虚拟环境文件夹下运行cmd,激活虚拟环境

把代码脚本放在虚拟环境文件夹里,在虚拟环境下使用pyinstaller将脚本打包成exe

打包完成

打包完成后,exe文件在同文件下的dist文件夹中。

测试表格如下:

将xlsx文件拖入exe文件:

拆分成功:

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/657369
推荐阅读
相关标签
  

闽ICP备14008679号