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'
相关推荐
宋康5 分钟前
C语言结构体和union内存对齐
c语言·开发语言
逢生博客10 分钟前
使用 Python 项目管理工具 uv 快速创建 MCP 服务(Cherry Studio、Trae 添加 MCP 服务)
python·sqlite·uv·deepseek·trae·cherry studio·mcp服务
居然是阿宋15 分钟前
Kotlin高阶函数 vs Lambda表达式:关键区别与协作关系
android·开发语言·kotlin
堕落似梦16 分钟前
Pydantic增强SQLALchemy序列化(FastAPI直接输出SQLALchemy查询集)
python
Cao1234567893211 小时前
简易学生成绩管理系统(C语言)
c语言·开发语言
The Future is mine1 小时前
C# new Bitmap(32043, 32043, PixelFormat.Format32bppArgb)报错:参数无效,如何将图像分块化处理?
开发语言·c#
亿坊电商1 小时前
PHP框架在微服务迁移中能发挥什么作用?
开发语言·微服务·php
烁3471 小时前
每日一题(小白)模拟娱乐篇33
java·开发语言·算法
坐吃山猪1 小时前
Python-Agent调用多个Server-FastAPI版本
开发语言·python·fastapi
88号技师1 小时前
【1区SCI】Fusion entropy融合熵,多尺度,复合多尺度、时移多尺度、层次 + 故障识别、诊断-matlab代码
开发语言·机器学习·matlab·时序分析·故障诊断·信息熵·特征提取