首页 > 解决方案 > 如何在 pyinstaller 中只包含需要的模块?

问题描述

我用来为我的单个python文件pyinstaller生成一个.exe文件,但是大小超过30MB,启动很慢。据我所知,pyinstaller默认情况下捆绑了很多不需要的东西。有没有办法确保pyinstaller找出只需要什么并只捆绑它们?我的脚本上的导入部分如下所示:

import datetime
import os
import numpy as np
import pandas as pd 
import xlsxwriter
from tkinter import *

编辑:

或者还有一种方法可以查看它捆绑的所有模块的列表?所以我可以通过它们并排除我不需要的那些。

标签: pythonpyinstaller

解决方案


为此,您需要创建一个单独的环境,因为当前您正在读取计算机上安装的所有模块。创建环境运行命令

1 - 如果您没有,请创建一个requirements.txt包含您正在使用的所有包的文件,您可以使用以下命令创建一个:

pip freeze > requirements.txt

2 - 创建环境文件夹:

python -m venv projectName

3 - 激活环境:

source projectName/bin/activate

4 - 安装它们:

pip install -r requirements.txt

或者,如果你知道你只使用 wxpython,你可以pip install wxpython

5 - 最后你可以使用argpyinstaller在你的主脚本上运行,如this answer中所述:--path

pyinstaller --paths projectName/lib/python3.7/site-packages script.py

推荐阅读