mac下打包python成exe

在本教程中,我将详细介绍如何在macOS系统下将Python脚本打包为可执行的`.exe`文件。请注意,macOS下默认生成的可执行文件为Mach-O格式,并不是Windows下的`.exe`文件。但通过借助跨平台工具,我们仍然可以在macOS系统下生成适用于Windows的`.exe`文件。

### 准备工作

在开始之前,请确保你的mac设备上已经安装了Python。接下来,我们需要安装一些工具和Python库。执行以下命令来安装这些工具:

1. 安装Homebrew(如果尚未安装):

```bash

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

```

2. 安装Python环境:

```bash

brew install python

```

3. 安装Windows编译器:

```bash

brew install mingw-w64

```

4. 安装Python库(请在项目的虚拟环境中执行这些命令):

```bash

python3 -m pip install pyinstaller

```

### Python脚本示例

以下是一个简单的Python脚本示例,我们将使用此脚本作为示范目的:

```python

def main():

print("Hello, world!")

if __name__ == "__main__":

main()

```

将以上代码保存为`hello.py`。

### 使用PyInstaller和Wine打包

首先,我们需要安装Wine来运行Windows程序。使用以下命令安装Wine:

```bash

brew install wine

```

接下来,我们将在macOS下设置Windows的Python环境,并安装PyInstaller。请按以下步骤操作:

1. 创建一个新的Wine命令前缀:

```bash

WINEPREFIX=~/.wine-python WINEARCH=win64 wine64 wineboot

```

2. 使用以下命令安装对应的Python版本(本例中为3.8):

```bash

curl -o python-3.8.7-amd64.exe https://www.python.org/ftp/python/3.8.7/python-3.8.7-amd64.exe

WINEPREFIX=~/.wine-python wine64 python-3.8.7-amd64.exe /quiet InstallAllUsers=1

```

3. 为Wine配置Python解释器:

```bash

echo 'export WINEPREFIX=~/.wine-python' >> ~/.bash_profile

echo 'alias winepython="wine64 python3.8.exe"' >> ~/.bash_profile

source ~/.bash_profile

```

4. 安装PyInstaller:

```bash

winepython -m pip install pyinstaller

```

现在,我们可以使用PyInstaller生成可执行文件了。在你的Python脚本所在的目录下执行以下命令:

```bash

winepython -m PyInstaller --onefile --noconsole hello.py

```

生成的可执行文件将位于`dist/`目录下。请注意,生成的文件为`.exe`格式,适用于Windows系统。你可以将此文件复制到Windows系统上进行测试。

### 打包完成

恭喜!您已经成功在macOS系统下将Python脚本打包为Windows可执行的`.exe`文件。要将其在Windows系统上运行,请将其传输到Windows设备,并双击运行即可。