擅长:python、mysql、java
<p>首先,你的问题有一点我不明白:</p>
<blockquote>
<p>[...] also want to be able to distribute the code as standalone C/C++ libraries. [...] Some functions will need to call a Python function from the C/C++ code.</p>
</blockquote>
<p>怎么会这样?</p>
<p>接下来,关于您的实际问题,直接使用Python/C API肯定有一些好处:</p>
<ul>
<li><p>最有可能的是,比起编写Cython代码,您更熟悉编写C代码。</p></li>
<li><p>用C语言编写代码可以提供最大的控制能力。要从Cython代码获得与等效C代码相同的性能,您必须非常小心。您不仅需要确保声明所有变量的类型,还需要充分设置一些标志——只有一个例子是<a href="http://wiki.cython.org/tutorials/numpy#Tuningindexingfurther" rel="noreferrer">bounds checking</a>。你需要深入了解Cython是如何工作的才能获得最好的表现。</p></li>
<li><p>Cython代码依赖于Python。在Cython中编写也应该作为独立C库分发的代码似乎不是一个好主意</p></li>
</ul>