多个Python文件打包成一个可执行文件(.exe)文件

安装Pyinstaller

首先我们要先安装Pyinstaller,直接在cmd使用pip命令

 pip install pyinstaller 

如果网速太慢可以切换国内源来加速 

pip install -i https://pypi.douban.com/simple/ pyinstaller #豆瓣源
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyinstaller #清华源 

 注:用魔法工具的时候,不要用国内源,会显示该包找不到

 Pyinstaller打包步骤

pyinstaller [主文件] -p [其他文件1] -p [其他文件2]  --hidden-import [库包名1]
Pyinstaller -F test1.py 打包exe
 
Pyinstaller -F -w test1.py 不带控制台的打包
 
Pyinstaller -F -w -i WANG.ico test1.py 打包指定exe图标打包

 

注:主文件就是main.py

        其他文件就是别的.py文件 

        库包名就是你程序需要的包(可以看报错,缺什么导什么)

打开项目所在的文件夹,这时发现生成了一个dist文件夹和一个.spec文件

多个Python文件打包成一个可执行文件(.exe)文件_第1张图片

在打开文件夹(注:如果使用-F则在该文件夹下只有一个.exe) 

多个Python文件打包成一个可执行文件(.exe)文件_第2张图片 多个Python文件打包成一个可执行文件(.exe)文件_第3张图片

 双击直接跑

 日常报错

ModuleNotFoundError: No module named ‘xxx‘  意思没有‘XXX’这个包

chaojiying是网上的一个识别验证码的包,他是pip install 下载不了的,就例如自己写的包

解决方法如下

  1. 没有__init__.py文件
  2. 没设置PYTHONPATH(自建的包所在路径不在PYTHONPATH下)

 没有__init__.py文件

自己写的包下很容易出这个问题,检测包的根目录是否存在一个__init__.py文件,没有的话建一个空的__init__.py文件即可 (注意:不光要检查待导入的包根目录是否存在__init__.py文件,还需要检查当前程序所在文件夹是否存在这个文件) 

不过对于缺少__init__.py文件这种情况,还有一种报错形式是: ImportError: attempted relative import with no known parent package

没设置PYTHONPATH

1. 在报错的包下面加入

import sys
sys.path.append("XXX")

XXX是你自建包的路径

import sys
sys.path.append("D:\PyCharm 2022.1\爬虫\chaojiying_Python")

注:路径是到那个包的文件夹,不是.py文件

sys没有的直接 pip install sys 

2.另外一种方法是:

把路径添加到系统的环境变量,或把该路径的文件夹放进已经添加到系统环境变量的路径内。环境变量的内容会自动添加到模块搜索路径中

添加环境变量网上有一堆 

你可能感兴趣的:(python)