Macos移植python项目到Windows小记

  • 一、准备工作
  • 二、程序环境为虚拟环境
  • 三、windows新建项目
  • 四、安装项目依赖
  • 五、安装pyinstaller
  • 六、多文件打包


一、准备工作

1.在Macos上开发完毕程序后,需要使用pip freeze > requirements.txt将程序用到的所有库名进行记录,并保存在requirements.txt 中。
2.将项目中的py文件以及涉及到的读取的文件/文件夹全都拷贝到目标Windows机器上。

二、程序环境为虚拟环境

开发时使用的解释器应为虚拟环境,如下图:

python移植到arm平台 python程序移植_windows

三、windows新建项目

若需要打包为Windows可执行文件,则需要在Windows环境下进行打包。
1.新建一个pycharm 项目,删除自动生成的主程序main.py
2.将在Mac系统中拷贝的项目文件(所有py文件+需要读取的文件夹/文件)黏贴进刚才新建的项目。

四、安装项目依赖

1.使用语句pip install -r requirements.txt安装拷贝过来项目所需的依赖文件,执行语句后,python会自动安装requirements.txt里面的所有依赖库,如图所示。

python移植到arm平台 python程序移植_python移植到arm平台_02


2.安装完所有依赖库之后,可尝试运行,确认是否报错。

五、安装pyinstaller

terminal终端使用语句pip install pyinstaller,执行完毕后,终端输入命令pyinstaller,会输出对应用法,如下图所示。

python移植到arm平台 python程序移植_windows_03

六、多文件打包

⚠️ 涉及需要打包的项目,需要明确需要读取的文件/文件夹的路径,可以使用os.package获取当前文件的绝对路径去定义调取文件路径。【打包完成后需要将被调取文件/文件夹复制到与输出exe同层级文件夹下,否则会报错!

import os
# 获取当前py文件所在绝对路径
  Base_dir = os.path.dirname(os.path.abspath(__file__))
# "target_docx"可以替换成你的目标文件/文件夹的名字
  base_path = os.path.join(Base_dir, "target_docx")

1.在pycharm终端使用pyinstaller -D main.py -n xxx对项目文件进行多文件打包。其中mian.py代表项目主程序的文件名,根据自己项目更改,xxx代表你想要为生成的可执行文件取的名字,自定义即可。

2.打包完毕后,可以看到多了一些文件,其中我们需要的最终文件位于dist文件夹中,其余新增的文件(build文件夹、spec文件)都可以不用管。
3.最后,只需要打开将dist文件夹复制给别人就可以打开运行exe文件了。

python移植到arm平台 python程序移植_pycharm_04

⚠️如果程序调用了外部的文件/文件夹,参照下面👇

打包完成后需要将被调取文件/文件夹复制到与输出exe同层级文件夹下,否则会报错!

否则报错,运行会直接闪退!

⚠️一旦闪退说明程序有错误,打开电脑终端,将可执行文件拖入终端(终端中会出现程序的地址),然后回车,此时就会显示程序的错误信息。