在 Windows 上使用 scons 为 gem5 构建失败,并显示“No module named 'm5.util'”

问题描述

我想使用 gem5,为此,我遵循了一个教程,该教程让我下载 scons 并使用 python 安装它。 Scons 似乎可以独立工作。但是当我尝试执行此步骤时:

cd gem5
scons build/X86/gem5.opt -j <NUMBER OF cpus ON YOUR PLATFORM>

我收到此错误

*** Error loading site_init file .\site_scons\site_init.py:
*** cannot import site init file .\site_scons\site_init.py:
ModuleNotFoundError: No module named 'm5.util':
  File "C:\Users\Elif\AppData\Local\Programs\Python\python37-32\lib\site-packages\scons-4.0.1-py3.7.egg\SCons\Script\Main.py",line 1391:
    _exec_main(parser,values)
  File "C:\Users\Elif\AppData\Local\Programs\Python\python37-32\lib\site-packages\scons-4.0.1-py3.7.egg\SCons\Script\Main.py",line 1355:
    _main(parser)
  File "C:\Users\Elif\AppData\Local\Programs\Python\python37-32\lib\site-packages\scons-4.0.1-py3.7.egg\SCons\Script\Main.py",line 978:
    _load_all_site_scons_dirs(d.get_internal_path())
  File "C:\Users\Elif\AppData\Local\Programs\Python\python37-32\lib\site-packages\scons-4.0.1-py3.7.egg\SCons\Script\Main.py",line 824:
    _load_site_scons_dir(d)
  File "C:\Users\Elif\AppData\Local\Programs\Python\python37-32\lib\site-packages\scons-4.0.1-py3.7.egg\SCons\Script\Main.py",line 762:
    exec(codeobj,site_m)
  File "site_init",line 46:

  File "C:\Users\Elif\AppData\Local\Programs\Python\python37-32\lib\site-packages\scons-4.0.1-py3.7.egg\SCons\Script\sconscript.py",line 659:
    env = self.factory()
  File "C:\Users\Elif\AppData\Local\Programs\Python\python37-32\lib\site-packages\scons-4.0.1-py3.7.egg\SCons\Script\sconscript.py",line 639:
    default_env = SCons.Defaults.DefaultEnvironment()
  File "C:\Users\Elif\AppData\Local\Programs\Python\python37-32\lib\site-packages\scons-4.0.1-py3.7.egg\SCons\Defaults.py",line 86:
    _default_env = SCons.Environment.Environment(*args,**kw)
  File "C:\Users\Elif\AppData\Local\Programs\Python\python37-32\lib\site-packages\scons-4.0.1-py3.7.egg\SCons\Environment.py",line 999:
    apply_tools(self,tools,toolpath)
  File "C:\Users\Elif\AppData\Local\Programs\Python\python37-32\lib\site-packages\scons-4.0.1-py3.7.egg\SCons\Environment.py",line 102:
    env.Tool(tool)
  File "C:\Users\Elif\AppData\Local\Programs\Python\python37-32\lib\site-packages\scons-4.0.1-py3.7.egg\SCons\Environment.py",line 1844:
    tool(self)
  File "C:\Users\Elif\AppData\Local\Programs\Python\python37-32\lib\site-packages\scons-4.0.1-py3.7.egg\SCons\Tool\__init__.py",line 269:
    self.generate(env,*args,**kw)
  File "C:\Users\Elif\gem5\site_scons\site_tools\default.py",line 89:
    SCons.Tool.Tool(tool)(env)
  File "C:\Users\Elif\AppData\Local\Programs\Python\python37-32\lib\site-packages\scons-4.0.1-py3.7.egg\SCons\Tool\__init__.py",line 119:
    module = self._tool_module()
  File "C:\Users\Elif\AppData\Local\Programs\Python\python37-32\lib\site-packages\scons-4.0.1-py3.7.egg\SCons\Tool\__init__.py",line 205:
    module = spec.loader.load_module(spec.name)
  File "<frozen importlib._bootstrap_external>",line 407:

  File "<frozen importlib._bootstrap_external>",line 907:

  File "<frozen importlib._bootstrap_external>",line 732:

  File "<frozen importlib._bootstrap>",line 265:

  File "<frozen importlib._bootstrap>",line 696:

  File "<frozen importlib._bootstrap>",line 677:

  File "<frozen importlib._bootstrap_external>",line 728:

  File "<frozen importlib._bootstrap>",line 219:

  File "C:\Users\Elif\gem5\site_scons\site_tools\git.py",line 45:
    import gem5_scons.util
  File "C:\Users\Elif\gem5\site_scons\gem5_scons\__init__.py",line 46:
    from gem5_scons.util import get_termcap
  File "C:\Users\Elif\gem5\site_scons\gem5_scons\util.py",line 45:
    import m5.util.terminal

我之前只有“m5”有一个错误,但我尝试安装它,现在我得到了“m5.util”错误。这可能是什么原因造成的,我该如何解决? 编辑:我使用的是 Python 3.7.0

解决方法

我也遇到了这个问题。可能是因为我的源代码是从另一台计算机上复制过来的。

我的解决方案是 git clone gem5 源代码并再次编译。

git clone https://gem5.googlesource.com/public/gem5
# or
git clone https://github.com/gem5/gem5.git

再次编译,这次没有问题了。