我在哪里将我的cython文件放在python发行版中?

时间:2013-06-02 22:24:28

标签: python cython

我编写并维护一个名为PyQuante的量子化学计算Python库。我有一个相当标准的Python发行版,在主目录中有一个setup.py文件,一个名为“PyQuante”的子目录,包含所有Python模块,还有一个名为“Src”,包含C扩展模块的源代码。

我很幸运能够让一些用户捐赠使用Cython的代码,我之前没有使用过,因为我在PyQuante或者Pyrex存在之前就开始了。根据我的建议,他们将代码放入Src子目录,因为那是所有C代码的所在。

但是,看一下生成扩展的代码,我想知道我是否应该简单地将代码放在Python分支的子目录中。因此我的问题是:

Python和Cython源文件的python发行版目录结构的最佳实践是什么?

  • 您是否将.pyx文件放在与.py文件相同的目录中?
  • 您是否将它们放在包含.py文件的子目录中?
  • 您是否将它们放在.py目录的父级的子级中?

我甚至问这个问题的事实背叛了我对分发.pyx文件的无知吗?我确信有很多方法可以完成这项工作,而且我最关心的是对人们有用的东西。

感谢您提供的任何帮助。

1 个答案:

答案 0 :(得分:2)

将.pyx文件放在与.py文件相同的目录中对我来说是最有意义的。这是scikit-learn的作者所做的以及我在py-earth模块中所做的事情。我想我认为Cython模块是Python模块的优化替代品。我经常会先用纯Python编写一个包,然后用Cython替换一些模块,如果我需要更好的性能。由于我将Cython模块视为Python模块的替代品,因此将它们保存在同一位置对我来说是有意义的。它也适用于使用--inplace参数的测试构建。