python - ValueError:尝试在非包 [gem5] 中进行相对导入
问题描述
我在 configs/common 中使用配置 Simulation.py。我得到错误
ValueError:尝试在非包中进行相对导入
完整的错误:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "build/X86/python/m5/main.py", line 438, in main
exec(filecode, scope)
File "configs/common/Simulation.py", line 49, in <module>
from . import CpuConfig
ValueError: Attempted relative import in non-package
模拟.py:
from __future__ import print_function
from __future__ import absolute_import
import sys
from os import getcwd
from os.path import join as joinpath
from . import CpuConfig
from . import BPConfig
from . import MemConfig
import m5
from m5.defines import buildEnv
from m5.objects import *
from m5.util import *
addToPath('../common')
我尝试从相对导入路径更改为绝对导入路径,但仍然出现错误。这家伙有一个类似的错误:https ://www.mail-archive.com/gem5-users@gem5.org/msg16430.html但它没有为我解决。
OS: Ubuntu 18.04.2 LTS
git SHA: d00aa3658498968f7dc2b586347771734af0d24a
解决方案
在Eleanor 的评论之后,似乎他们试图configs/common/Simulation.py
直接使用 gem5.opt 执行,这是不受支持的。
一般来说,下面的 Python 脚本configs/common
并不意味着直接执行,而只是将其他脚本排除在外。
我知道的最重要的树内脚本是:
configs/example/fs.py
: 主跨拱全系统脚本configs/example/se.py
:主跨拱系统调用仿真脚本configs/example/arm/fs_bigLITTLE.py
: ARM bigLITTLE 系统configs/example/arm/starter_fs.py
:ARM最小系统gem5/configs/learning_gem5/
: Jason 学习 Gem5 教程的教程脚本
因此,您会看到其中configs/example/
包含大多数有趣的内容。您只需要了解脚本必须包含哪些内容才能“可运行”,最重要的组件基本上是调用:
Simulation.run
这实际上开始了模拟。
我所知道的唯一可观的文件是:
http://gem5.org/这是一个半凌乱的维基,所以碰碰运气
Jason 的http://learning.gem5.org/展示了如何设置一些基本的 Python 配置,非常有价值
https://github.com/cirosantilli/linux-kernel-module-cheat其中包含一些可以正常工作并且可以作为起始参考的设置
推荐阅读
- xml - XML 和 WordPress 帮助
- sql-server - 强制 MS Access 将完整查询发送到 SQL 服务器
- java - maven 命名 GroupId 和 ArtifactId
- windows - ClearCase Explorer 文件夹窗格丢失
- spring - 从表单提交中获取空值
- php - 如何传递特定的可选参数?
- c# - 如何使用 onvif.org 从 ONVIF 摄像机获取流
- reactjs - 从反应中的输入获取默认值
- html - 使 HTML 页面移动友好(Wix)
- excel - 使用 VBA .NumberFormat 有没有办法将整列格式化为邮政编码?