前言
因为一些复杂的原因,打算对项目的 4.25 引擎升级 Python2 到 Python3。
这个过程踩的坑做一些总结。
UE4.26 已经配置上 python 3.7.7
所以升级 Python 并没有太大的困难,将相关的代码和文件复制过去再修改就差不多了。
Python3 配置
首先可以先安装 UE 4.26
Engine\Source\ThirdParty\Python3
Engine\Binaries\ThirdParty\Python3
然后将上面两个目录拷贝到项目工程。
然后再去修改 Source 里面的代码。
然后需要修改 PythonScriptPlugin 下的 build.cs 依赖修改 “Python3”。
当然最好是将 UE4.26 的 PythonScriptPlugin 也搬过来。
只是得去掉部分新模块依赖的代码,才行。
踩坑过程
第一次编译不知道需要搬运 Binaries ,于是就去 Python 官方下载 Python3.7 的版本。
然后安装到 C 盘 Python37 目录。
莫名其妙成功地通过了编译,后来我发现我编译的 Pythonsys.version
是 3.7.9 版本
不是 UE4.26 官方的 3.7.7 才发现问题。
后来查了
Python3.build.cs
才发现问题。
它默认找不到 Binaries 是读取 C 盘的这个路径。
所以我的把 Binaries 里的 Python 文件给补充上,否则推到项目都启动不了 Python
后来在 git 上将 Binaries 推上去,本地编译也通过了。
但是项目组那边编译还是出问题了,报错显示是Python SDK not found
一开始不知道是什么情况,毕竟我本地已经编译通过了。搜索报错,可以找到还是Python3.build.cs
提示的错误。
最后经过我修改Python3.build.cs
打印为啥会触发这个问题,才发现是原来是一些 exe 之类的文件被 gitignore 给过滤掉了。
我又得用命令行git add --force .
强行将文件推上去。
如此即可解决问题。
总结
因为有 UE4.26 的 Py3 可以抄。
所以升级过程并没有那么困难。