UE5 Switchboard 无法启动的原因以及解决办法

简述:
Switchboard一直处于更新状态,所以方法也会随着更新发生新的变化,因此要凭一个文件就解决以后所有更新这方面的问题不大实际,这里需要大家自己去理解Switchboard.bat的工作原理。可以说新版的比老版的更为复杂,同样也在逻辑上更加严密。

一.先查看Switchboard.bat文件,这里是所有调用的开端。
先设置目录变量:
1.switchboard目录(当前目录)
2.跳转命令(将目录跳转到Engine目录)
3.引擎目录
4.引擎python平台目录
5.默认虚拟环境目录

二.设定使用哪里的虚拟环境
这里主要是使用自定义虚拟环境路径还是使用默认的虚拟环境路径

三.调用主函数
第一步:呼叫主函数:call:main
然后分析主函数干了什么?
1.if not exist "%_venvDir%\Scripts\pythonw.exe",如果虚拟环境下不存在puthonw.exe。简单点说就是虚拟环境不存在的话。
2.call "%_enginePythonPlatformDir%\python.exe" "%~dp0\sb_setup.py" install --venv-dir="%_venvDir%",这里的意思是,使用虚幻提供的python3中的python.exe,执行Switchboard目录下的sb_setup.py,安装到虚拟环境中"%_venvDir%"。
3.下面的if是,如果遇到报错就抛出错误。

4.然后调用”call:start_Sb“函数
第一步:设置Python路径
第二步:启动switchboard,这得借助pthonw.exe。

四.重要部分,跳转的”sb_setup.py“,这部分是python脚本
这里导入的类比较多,内容也比较复杂。我就不用过大的篇幅去复述每个部分的功能和作用
主要有以下五个部分:
1. 查找引擎原始目录:ef find_engine_ancestor_dir(start: pathlib.Path) -> pathlib.Path:
2. 路径变量设定:也就运行Switchboard各部分文件的目录
3. Switchboard虚拟环境构建类:class SbEnvBuilder(venv.EnvBuilder):
4. Switchboard启动的类:class SbSetup:
5. 主函数的入口:def main()->int;

其实关于虚拟环境的安装的主要部分从以上的类函数,我们直接跳转到:class SbEnvBuilder(venv.EnvBuilder)

直接上图:

这里有一个参数组:结合上一篇专栏中参数,细心的人就会注意到相似的地方。
其实这次是使用python的执行代码实现以上的安装功能。
六.解决办法(使用国内的源加速下载)
1. 同样的可能在第一次switchbooard启动可能会提示,”pythonw.exe -m pip install --upgrade pip“
按照提示的目录切换到对应的目录,启用”cmd“
然后输入如图命令行

2. 像如图所示的部分,添加代码。

添加如下地址之一:
豆瓣
http://pypi.douban.com/simple/
清华大学
https://pypi.tuna.tsinghua.edu.cn/simple/
阿里云
http://mirrors.aliyun.com/pypi/simple/
中国科学技术大学
恭喜你,新的版本Switchboard可以随意使用了!
欢迎关注三连!