我正在尝试使同事编写的 C++ 研究代码易于新研究生使用。我想做的是一个用干净的编程接口抽象项目底层结构的包。这对于我的同事帮助维护它应该足够简单,而无需成为 Python 的世界级专家。
我需要你的帮助来设计和组织我的包裹。
现有代码进行物理模拟。它需要一个纯文本输入文件,其中包含用于启动模型的值。然后,在 C++ 中进行一些数字运算,并将模拟结果写入另一个文本文件。
这种方法的问题在于它缺乏灵活性,尤其是在循环使用不同的参数值时,并且设置和使用不是超级用户友好。使用 bash 脚本会鼓励不良做法和较差的可重复性。
我们想要的是一个包:
用户最后会有这样的事情:
import mymodel
# The variables I'll use
myparams = {temperature : 100, foo : 1, bar : "hello", ...}
# create a Python object for example
mysim = mymodel.simulation(myparams)
# run the C++ model
result = mysim.run()
我仍然无法弄清楚的是:
我真的不明白什么
我阅读了许多与distutils
,setup.py
文件相关的文档页面,搜索了 The Hitchhiker's Guide to Packaging,但找不到关于我正在尝试做什么的综合指南。特别是,我不明白我setup.py
应该包含什么,我的包应该如何组织以及在调用二进制文件时我应该如何处理不同的文件路径......
我认为你的方法听起来很合理。我会这样处理:
有很多方法可以做到以上几点;它们都需要一些工作,但最终你会得到一个工作流程。
就我个人而言,我发现 Cython 是一个非常有效的一站式商店,可以完成上述所有工作。尽管 Cython 是为高性能 Python 开发的,但它单独集成 C 和 C++ 模型的流程值得使用恕我直言。
请查看Cython 教程以快速入门。完整文档包含更多特定于语言的细节,但不是您的目的所必需的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句