如何在 gem5 中同时使用 python 2.7 和 3?
How to use both python 2.7 and 3 in gem5?
我有一台机器有两个 gem5-repository 实例:一个我保持最新,另一个使用我无法更新的旧版本。
我使用的是 Ubuntu 16.04,当前的 gem5 版本已弃用 python 2.7。我正在推迟升级我的 OS,并使用了一些解决方法(还原提交 scons: Set the minimum scons version to 3.0
,并手动将 EM_RISCV
添加到 src/base/loader/elf_object.cc
);然而,最近事情变得一团糟,所以我不得不这样做才能使用 SCons 3 和 python3.
在 Ubuntu 18.04 和 20.04 都试过之后,由于在某些 python class.[= 中使用了 metaclasses,我仍然无法编译。 16=]
不过,真正的问题很明显;尽管我安装了 python3(在 /usr/bin/
中),但找不到 python3-config:
Info: Using Python config: python2.7-config
如何在同一台机器上同时使用python 2.7和3来编译不同版本的gem5?
如果 SCons 找不到 python3-config,请手动用其位置覆盖 PYTHON_CONFIG,并设置适当的环境。
alias scons2="/usr/bin/env python2.7 $(which scons) PYTHON_CONFIG=$(which python2.7-config)"
alias scons3="/usr/bin/env python3 $(which scons) PYTHON_CONFIG=$(which python3-config)"
然后,编译更新的存储库:
scons3 -j5 ./build/ARM/gem5.opt
编译需要的python 2.7:
scons2 -j5 ./build/ARM/gem5.opt
我有一台机器有两个 gem5-repository 实例:一个我保持最新,另一个使用我无法更新的旧版本。
我使用的是 Ubuntu 16.04,当前的 gem5 版本已弃用 python 2.7。我正在推迟升级我的 OS,并使用了一些解决方法(还原提交 scons: Set the minimum scons version to 3.0
,并手动将 EM_RISCV
添加到 src/base/loader/elf_object.cc
);然而,最近事情变得一团糟,所以我不得不这样做才能使用 SCons 3 和 python3.
在 Ubuntu 18.04 和 20.04 都试过之后,由于在某些 python class.[= 中使用了 metaclasses,我仍然无法编译。 16=]
不过,真正的问题很明显;尽管我安装了 python3(在 /usr/bin/
中),但找不到 python3-config:
Info: Using Python config: python2.7-config
如何在同一台机器上同时使用python 2.7和3来编译不同版本的gem5?
如果 SCons 找不到 python3-config,请手动用其位置覆盖 PYTHON_CONFIG,并设置适当的环境。
alias scons2="/usr/bin/env python2.7 $(which scons) PYTHON_CONFIG=$(which python2.7-config)"
alias scons3="/usr/bin/env python3 $(which scons) PYTHON_CONFIG=$(which python3-config)"
然后,编译更新的存储库:
scons3 -j5 ./build/ARM/gem5.opt
编译需要的python 2.7:
scons2 -j5 ./build/ARM/gem5.opt