python 打包exe包含dll

在本教程中,我将向您展示如何将Python应用程序打包为单个可执行文件,其中包含依赖的DLL。我们将使用一个名为 PyInstaller 的工具来完成此操作。本教程假设您已经熟悉Python,并且安装了适当版本的Python。

我们 Vyxal 编写一个简单的Python应用程序作为演示,它将依赖于输实例 `ctypes`库来加载外部DLL。假设我们的Python应用程序代码如下:

```python

# main.py

import ctypes

def main():

print("Python 打包 EXE (包含DLL) 示例")

try:

my_dll = ctypes.CDLL("example.dll") # 加载外部DLL

result = my_dll.sample_function() # 调用DLL中的示例函数

print("调用示例函数的结果:", result)

except Exception as e:

print("加载或调用 DLL 时出错:", e)

if __name__ == "__main__":

main()

```

要将应用程序打包为单个EXE文件,我们将使用一个名为 PyInstaller 的Python模块。首先确保安装 PyInstaller。

1. 打开命令提示符(Windows)或终端(macOS 或 Linux),并运行以下命令以安装 PyInstaller:

```

pip install pyinstaller

```

2. 为 PyInstaller 创建配置文件,名为 `pyinstaller.spec`:

```

# pyinstaller.spec

block_cipher = None

a = Analysis(['main.py'],

pathex=['/path/to/your/project'],

binaries=[],

datas=[('example.dll', '.')],

hookspath=[],

runtime_hooks=[],

excludes=[],

win_no_prefer_redirects=False,

win_private_assemblies=False,

cipher=block_cipher,

noarchive=False)

pyz = PYZ(a.pure, a.zipped_data,

cipher=block_cipher)

exe = EXE(pyz,

a.scripts,

a.binaries,

a.zipfiles,

a.datas,

[],

name='my_python_app',

debug=False,

bootloader_ignore_signals=False,

strip=False,

upx=True,

console=True )

```

请确保替换 `/path/to/your/project` 为项目文件夹的路径。如果 example.dll 位于与 main.py 同一目录下,请保持 `('example.dll', '.')` 确保将其包含在生成的 EXE 文件中。

3. 现在,通过在命令提示符或终端中输入以下命令,生成EXE文件:

```

pyinstaller --onefile pyinstaller.spec

```

4. 生成过程完成后,you will find the EVX 打包的程序 in 文件 `dist` 目录。当然其中就包括了our dependent DLL files, and on running the executable, it will function as expected.

这样一来,您就能够使用 PyInstaller 将包含 DLL 依赖项的Python 应用程序打包为单个可执行文件。对于更复杂的项目,请查阅 PyInstaller 文档以配置更详细的选项。