python执行unity打包

由于打包机并没有图形界面,在满屏的日志里面找错误又比较繁琐。所以需要捕获日志的错误在最后显示

使用管道执行unityeditor命名空间下的打包方法。指定-logFile参数日志输出到stdout

返回非0值给shell捕获返回

python 复制代码
import os
import subprocess

def cmd(command):
    p= subprocess.Popen(command,shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
    errLines=[]
    while p.poll() is None:
            line = p.stdout.readline()
            line = line.strip().decode("utf-8")
            print(line)
            if ": error" in line or "Exception:" in line:
                errLines.append(line)
                
    if p.returncode == 0:
        print('success')
    else:
        print('fail')
        for line in errLines:
            print(line)
        exit(1)

def main():
    unityPath = "F:/unity/2019.4.28f1c1/Editor/Unity.exe"
    projectPath = os.getcwd()
    method = "BuildTool.BuildSetting"
    cmd("{} -quit -batchmode -projectPath {} -executeMethod {} -logFile -nographics"
        .format(unityPath,projectPath,method))

if __name__ == "__main__":
    main()

最后把错误打印出来。方便查找原因

powershell 复制代码
Scan: 30.291ms
OnSourceAssetsModified: 0.000ms
UnregisterDeletedAssets: 0.000ms
InitializeImportedAssetsSnapshot: 7.527ms
GetAllGuidsForCategorization: 0.000ms
CategorizeAssets: 0.000ms
ImportAndPostprocessOutOfDateAssets: 0.000ms (0.000ms without children)
ImportManagerImport: 0.000ms (0.000ms without children)
ImportInProcess: 0.000ms
ImportOutOfProcess: 0.000ms
UpdateCategorizedAssets: 0.000ms
RemoteAssetCacheGetArtifact: 0.000ms (0.000ms without children)
RemoteAssetCacheResolve: 0.000ms
RemoteAssetCacheDownloadFile: 0.000ms
CompileScripts: 0.000ms
PostProcessAllAssets: 0.000ms
ReloadImportedAssets: 0.000ms
VerifyAssetsAreUpToDateAndCorrect: 0.000ms
EnsureUptoDateAssetsAreRegisteredWithGuidPM: 0.000ms
InitializingProgressBar: 0.000ms
PostProcessAllAssetNotificationsAddChangedAssets: 0.000ms
OnDemandSchedulerStart: 0.000ms
RestoreLoadedAssetsState: 0.000ms
InvokeProjectHasChanged: 0.000ms
UpdateImportedAssetsSnapshot: 0.000ms
ReloadSourceAssets: 0.000ms
UnloadImportedAssets: 0.000ms
Hotreload: 0.102ms
FixTempGuids: 0.015ms
VerifyGuidPMRegistrations: 0.000ms
GatherAllCurrentPrimaryArtifactRevisions: 1.013ms
UnloadStreamsBegin: 0.084ms
LoadedImportedAssetsSnapshotReleaseGCHandles: 2.447ms
GetLoadedSourceAssetsSnapshot: 2.884ms
PersistCurrentRevisions: 0.000ms
UnloadStreamsEnd: 0.059ms
GenerateScriptTypeHashes: 0.000ms
Untracked: 1.646ms
Refresh completed in 0.162346 seconds.
RefreshInfo: RefreshV2(NoUpdateAssetOptions)
RefreshProfiler: Total: 162.313ms
InvokeBeforeRefreshCallbacks: 0.001ms
ApplyChangesToAssetFolders: 0.094ms
WriteModifiedImportersToTextMetaFiles: 0.000ms
CleanLegacyArtifacts: 0.000ms
Scan: 88.633ms
OnSourceAssetsModified: 0.000ms
UnregisterDeletedAssets: 0.000ms
InitializeImportedAssetsSnapshot: 5.141ms
GetAllGuidsForCategorization: 0.382ms
CategorizeAssets: 46.687ms
ImportAndPostprocessOutOfDateAssets: 9.880ms (2.479ms without children)
ImportManagerImport: 0.000ms (0.000ms without children)
ImportInProcess: 0.000ms
ImportOutOfProcess: 0.000ms
UpdateCategorizedAssets: 0.000ms
RemoteAssetCacheGetArtifact: 0.000ms (0.000ms without children)
RemoteAssetCacheResolve: 0.000ms
RemoteAssetCacheDownloadFile: 0.000ms
CompileScripts: 0.000ms
PostProcessAllAssets: 0.001ms
ReloadImportedAssets: 0.000ms
VerifyAssetsAreUpToDateAndCorrect: 0.000ms
EnsureUptoDateAssetsAreRegisteredWithGuidPM: 1.376ms
InitializingProgressBar: 0.000ms
PostProcessAllAssetNotificationsAddChangedAssets: 0.837ms
OnDemandSchedulerStart: 0.885ms
RestoreLoadedAssetsState: 4.302ms
InvokeProjectHasChanged: 0.000ms
UpdateImportedAssetsSnapshot: 0.000ms
ReloadSourceAssets: 2.422ms
UnloadImportedAssets: 0.354ms
Hotreload: 0.114ms
FixTempGuids: 0.013ms
VerifyGuidPMRegistrations: 0.000ms
GatherAllCurrentPrimaryArtifactRevisions: 0.737ms
UnloadStreamsBegin: 0.096ms
LoadedImportedAssetsSnapshotReleaseGCHandles: 2.457ms
GetLoadedSourceAssetsSnapshot: 6.864ms
PersistCurrentRevisions: 0.000ms
UnloadStreamsEnd: 0.051ms
GenerateScriptTypeHashes: 0.000ms
Untracked: -1.613ms
Initializing Unity extensions:
'F:/unity/2019.4.28f1c1/Editor/Data/UnityExtensions/Unity/UnityVR/Editor/UnityEditor.VR.dll'  GUID: 4ba2329b63d54f0187bcaa12486b1b0f
Unloading 78 Unused Serialized files (Serialized files now loaded: 0)
System memory in use before: 56.5 MB.
System memory in use after: 55.8 MB.

Unloading 154 unused Assets to reduce memory usage. Loaded Objects now: 2517.
Total: 10.654000 ms (FindLiveObjects: 1.483200 ms CreateObjectMapping: 0.524500 ms MarkObjects: 7.094800 ms  DeleteObjects: 1.549400 ms)

Refreshing native plugins compatible for Editor in 13.10 ms, found 0 plugins.
Scripts have compiler errors.
(Filename: E:\unity\Runtime/Utilities/Argv.cpp Line: 376)


Aborting batchmode due to failure:
Scripts have compiler errors.


Aborting batchmode due to failure:
Scripts have compiler errors.

Exiting without the bug reporter. Application will terminate with return code 1
fail
Assets\Scripts\Core\Updater.cs(127,44): error CS0104: 'Tools' is an ambiguous reference between 'JEngine.Core.Tools' and 'UnityEditor.Tools'
Assets\Scripts\Core\Updater.cs(128,76): error CS0104: 'Tools' is an ambiguous reference between 'JEngine.Core.Tools' and 'UnityEditor.Tools'
Assets\Scripts\Core\Updater.cs(138,38): error CS0104: 'Tools' is an ambiguous reference between 'JEngine.Core.Tools' and 'UnityEditor.Tools'
Assets\Scripts\Core\Updater.cs(127,44): error CS0104: 'Tools' is an ambiguous reference between 'JEngine.Core.Tools' and 'UnityEditor.Tools'
Assets\Scripts\Core\Updater.cs(128,76): error CS0104: 'Tools' is an ambiguous reference between 'JEngine.Core.Tools' and 'UnityEditor.Tools'
Assets\Scripts\Core\Updater.cs(138,38): error CS0104: 'Tools' is an ambiguous reference between 'JEngine.Core.Tools' and 'UnityEditor.Tools'
相关推荐
AAD555888992 小时前
数字仪表LCD显示识别与读数:数字0-9、小数点及单位kwh检测识别实战
python
微风中的麦穗3 小时前
【MATLAB】MATLAB R2025a 详细下载安装图文指南:下一代科学计算与工程仿真平台
开发语言·matlab·开发工具·工程仿真·matlab r2025a·matlab r2025·科学计算与工程仿真
2601_949146534 小时前
C语言语音通知API示例代码:基于标准C的语音接口开发与底层调用实践
c语言·开发语言
开源技术4 小时前
Python Pillow 优化,打开和保存速度最快提高14倍
开发语言·python·pillow
学嵌入式的小杨同学4 小时前
从零打造 Linux 终端 MP3 播放器!用 C 语言实现音乐自由
linux·c语言·开发语言·前端·vscode·ci/cd·vim
Li emily5 小时前
解决港股实时行情数据 API 接入难题
人工智能·python·fastapi
wfeqhfxz25887825 小时前
农田杂草检测与识别系统基于YOLO11实现六种杂草自动识别_1
python
mftang5 小时前
Python 字符串拼接成字节详解
开发语言·python
0思必得05 小时前
[Web自动化] Selenium设置相关执行文件路径
前端·爬虫·python·selenium·自动化
石去皿5 小时前
大模型面试通关指南:28道高频考题深度解析与实战要点
人工智能·python·面试·职场和发展