python - 使用 Pycharm 编写 gem5 配置脚本

标签 python ide pycharm gem5

为了使用更方便的 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/

    相关文章:

    python - Pyodbc 连接错误

    python - Pywinauto:找不到 click() 方法

    python - 使用pycharm时如何获取pyplot的交互图

    python - PyCharm 注释打印行

    python - 对所有字符串获取相同的 sha1 哈希值

    python - 在 Python 中列出在某人的计算机上运行的进程

    python - pandas 统计函数和 boost::accumulators 之间的区别

    vb.net - 是否有 Visual Studio Express 的 Mac 替代品?

    linux - 如何在 Linux 下以 MS Office 格式从 IDE(以 HTML 格式)粘贴带有语法高亮的文本?

    vb6 - 有没有办法在 VB6/Visual Studio 6.0 IDE 中显示行号?