为了使用更方便的 IDE 开发复杂的 gem5 python 配置脚本,必须添加 gem5 lib
到项目。但是,对于那些不是python和Pycharm专家的人(比如我自己)
有一些困难。
对于不熟悉 gem5 的人来说,这是
一个简短的解释:
gem5 是一个开源模拟器,用于检查硬件架构。
可以从github下载:link to github .
安装过程在以下link中描述.
<gem5_installation_dir>/gem5/configs/learning_gem5/part1
在上面的路径里面,有一个基本的python脚本文件:simple.py
此文件包含一些导入。
使用 Pycharm 编辑此文件需要一些位于 gem5 安装目录中的依赖项。
问题:
1) 如何将 gem5 的那些依赖添加到 Pycharm 中?
2) 如何使用 gem5 执行命令配置 Pycharm?
任何帮助,将不胜感激。
最佳答案
我在 gem5/configs/learning_gem5/part1/two_level.py
下的 gem5 d9cb548d83fa81858599807f54b52e5be35a6b03(2020 年 5 月)上看到的一些提示:
from common
:常见的是在 configs/common
由于上述原因而被发现 m5.util.addToPath('../../')
打电话,所以加configs/
到 PYTHONPATH,如下所示:PyCharm and PYTHONPATH import m5
来自 src/python/m5
所以添加 src/python
到上面的 PYTHONPATH from caches import *
来自兄弟learning_gem5/part1/caches.py
,很可能这会被 PyCharm 自动找到。否则,将该目录添加到 PYTHONPATH。 from m5.objects import *
:这可能是您真正感兴趣的对象,因为它包含所有有趣的对象,但不幸的是 PyCharm 根本无法处理它我相信因为 SimObjects 在启动时通过 PyBind11 native 模块 + 代码以一种非常复杂的方式动态添加到该命名空间一代。更详细地描述其工作原理 can be found here ,但基本上每个 SimObject 类都会通过一些繁重的代码自动生成来完成这项工作,例如
src/cpu/simple/AtomicSimpleCPU.py
由于 SimObject('AtomicSimpleCPU.py')
在 src/cpu/simple/SConscript
.截至 2017 年,PyCharm 表示他们还没有适当的本地 C/C++ 扩展设置的计划:https://intellij-support.jetbrains.com/hc/en-us/community/posts/206018984-Developing-Python-extension-in-C-using-PyCharm
话虽如此,我发现为 gem5 的 Python 部分使用 IDE 是不值得的。这是因为 Python 往往非常容易理解 with IPDB (或无法为其设置 IDE),如果您只是
grep
你往往会很快猜到发生了什么事情。对于 C++,虽然我确实建议设置 Eclipse:How to setup Eclipse IDE for gem5 development?相关:Add custom modules to PyCharm Linter
关于python - 使用 Pycharm 编写 gem5 配置脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51982735/