在python发行版中,我应该将cython文件放在哪里?

在python发行版中,我应该将cython文件放在哪里?,python,cython,Python,Cython,我编写并维护了一个用于量子化学计算的Python库,名为。我有一个相当标准的Python发行版,在主目录中有一个setup.py文件,一个名为“PyQuante”的子目录保存所有Python模块,还有一个名为“Src”的子目录包含C扩展模块的源代码 我很幸运,有一些用户捐赠了使用Cython的代码,这是我以前从未使用过的,因为我在PyQuante或Pyrex出现之前就开始使用它。根据我的建议,他们将代码放在Src子目录中,因为所有的C代码都在那里 但是,看看生成扩展的代码,我想知道是否应该将代码

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

我很幸运,有一些用户捐赠了使用Cython的代码,这是我以前从未使用过的,因为我在PyQuante或Pyrex出现之前就开始使用它。根据我的建议,他们将代码放在Src子目录中,因为所有的C代码都在那里

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

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

  • 是否将.pyx文件与.py文件放在同一目录中
  • 您是否将它们放在保存.py文件的子目录中
  • 您是否将它们放在.py目录的父目录的子目录中
我问这个问题的事实是否暴露了我对分发.pyx文件的无知?我相信有很多方法可以让这一切顺利进行,我最关心的是什么对人们最有效


感谢您提供的帮助。

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

(我只有在提交自己的参数后才发现)提供了一个答案。这就是人们认为的“最佳实践”吗?另外,请查看这篇描述如何分发使用Cython的软件包的文章。谢谢。如果我把pyx和py文件放在同一个目录中,我担心会把所有东西都弄得乱七八糟(但我假设scikit学习人员知道他们在做什么)。然而,将内容放在一个单独的目录中会在一定程度上弄乱测试。