LiCan857 发表于 2024-5-17 10:10

python用pyinstaller打包避雷

这两天用pyinstaller打包的时候报错了"win32ctypes.pywin32.pywintypes.error: (225, 'BeginUpdateResourceW', '无法成功完成操作,因为文件包含病毒或潜在的垃圾软件 。')"
并且windows安全中心直接给我把打包后的文件删除了

研究发现可能是因为我没有写GUI界面,并且用了-w参数屏蔽命令行窗口,识别为了垃圾软件,只能说很牛掰

我用的很简单的命令,以及很简单的代码内容测试,仍然会报毒{:1_908:}
pyinstaller -F -w test.py


text.py
print("哈哈哈")

xoyi 发表于 2024-5-17 15:03

windows安全中心关了

Aminx520 发表于 2024-5-17 15:33

如果python编写程序时调用第三方库 是不是要连带着库一起打包呢

LiCan857 发表于 2024-5-17 16:05

Aminx520 发表于 2024-5-17 15:33
如果python编写程序时调用第三方库 是不是要连带着库一起打包呢

是的,所以打包后的程序可能会比较大

szbin 发表于 2024-5-17 17:08

开个env环境试一下~~

CIBao 发表于 2024-5-17 18:16

pyinstaller 打包出来exe, win自带的杀毒就报毒
可以试试换成 nuitka 打包, 刚好这2天研究了一下
启动速度和打包大小比 pyinstaller 好一点, 不过没测试过会不会被WD干掉
好像就配置一个mingw64就能用了
```bat
@echo off

REM 设置入口文件名和图标文件名
set ENTRY_FILE=src\MainWindow.py
set ICON_FILE=src\res\icon_512.ico
set ADD_DATA=src\res=res
set APP_NAME=XXX
set COMPANY_NAME=XXX

REM 设置版本号
(git describe --tags --abbrev=0) > temp
set /p FULL_FILE_VERSION=<temp
set FILE_VERSION=%FULL_FILE_VERSION:~1%
del temp

REM 打包文件名
set DIST_FILE_NAME=%APP_NAME%-%FULL_FILE_VERSION%.exe

REM 清理之前的构建结果
rmdir /s /q dist
del /f /q %DIST_FILE_NAME%.exe

REM 激活虚拟环境
call venv\Scripts\activate.bat

REM 执行Nuitka命令
python -m nuitka --standalone --mingw64 --onefile ^
    --remove-output ^
    --disable-console ^
    --plugin-enable=pyqt6 ^
    --windows-icon-from-ico=%ICON_FILE% ^
    --include-data-dir=%ADD_DATA% ^
    --company-name=%COMPANY_NAME% ^
    --product-name=%APP_NAME% ^
    --file-version=%FILE_VERSION% ^
    --product-version=%FILE_VERSION% ^
    --output-dir=dist ^
    --output-filename=%DIST_FILE_NAME%.exe ^
    %ENTRY_FILE%
REM --windows-uac-admin

REM 移动可执行文件到根目录
move dist\%DIST_FILE_NAME%.exe .

REM 删除其他缓存文件夹
rmdir /s /q dist

echo Build completed...
@REM pause
```

helian147 发表于 2024-5-17 19:01

CIBao 发表于 2024-5-17 18:16
pyinstaller 打包出来exe, win自带的杀毒就报毒
可以试试换成 nuitka 打包, 刚好这2天研究了一下
启 ...

激活虚拟环境
call venv\Scripts\activate.bat

这个方式好

bestnike 发表于 2024-5-17 21:07

高版本的pyinstaller会报毒, 想要免杀可以降级到低版本,例如5.8版本, 推荐直接安装autopytoexe,pip install auto-py-to-exe, 带网页界面直接打包, autopyexe底层是低版本pyinstaller

wizarrr 发表于 2024-5-18 10:55

学习, 感谢经验分享

zlicqh 发表于 2024-5-18 18:35

感谢分享{:1_893:}
页: [1] 2
查看完整版本: python用pyinstaller打包避雷