Skip to content

Python

项目打包成exe

pyinstaller ./hello.py
  • build 文件夹是存放打包时临时文件用的
  • dist 文件夹存放了打包好的应用
  • hello.spec 内容是 PyInstaller 根据我们的命令行生成的打包参数

更改后重新打包

pyinstaller .\hello.spec
a.runtimehooks 列表中加入 python 脚本 hook ,它会在我们的主代码执行之前运行,为我们准备环境。


-i https://pypi.tuna.tsinghua.edu.cn/simple/

输出requirements.txt

pip install pipreqs
pipreqs --debug  --encoding utf8 --pypi-server https://pypi.tuna.tsinghua.edu.cn/pypi/ --force ./ 
pip install -r requirements.txt

虚拟环境

Note

不能通过直接复制.venv 进行环境迁移

创建虚拟环境

python -m venv .venv

激活

Set-ExecutionPolicy RemoteSigned
.\.venv\Scripts\Activate.ps1

常见问题

Tip

如果找不到自己的包,请在项目根路径运行:

python -m 文件夹.文件

pyinstaller --onefile --noconsole --paths=./venv/Lib/site-packages main.py 打包后包缺失, 但是我./venv/Lib/site-packages 下是有相关包的

先生成:

pyinstaller main.py

然后改 main.spec:

hiddenimports=[ 'xxx', 'yyy', ], datas=[ ('./configs/.json', 'configs'), ('./models/', 'models'), ],

再打包:

python -m PyInstaller main.spec

Web 目录播放器

python3 -m http.server 8000