【发布时间】:2018-06-19 04:45:46
【问题描述】:
我正在使用 Python 2.7,并且是 Cython 的新手。
背景:
我的项目中有 20 多个 py 文件,然后我发现其中 3 个文件运行缓慢。
所以我对这些文件使用 Cython,它们现在用 Cython 编译并成为 pyd 文件,没有任何问题。 (我花了几天时间调查问题,寻找最佳解决方案,改进 Python 编码方式,但出于性能原因,我仍然必须使用 Cython)
除了pyd文件,build文件夹下还有几个文件名相同但扩展名不同的文件,分别是“.c”、“.exp”、“.lib”、“.obj”和“。 pyd.manifest"
即使我将这些文件(“.c”、“.exp”、“.lib”、“.obj”和“.pyd.manifest” ) 我对编译器的那些输出文件感到困惑,不知道什么是必要的,什么不是,以及我应该如何使用它们和处理它们。
我的 setup.py:
from distutils.core import setup
from Cython.Build import cythonize
setup(
ext_modules=cythonize("myCythonFile.pyx",)
)
【问题讨论】:
-
这在 Cython 文档中有解释,但这些都是 Cython 和 C 编译器生成的中间文件。如果你去掉它们,模块仍然可以工作,但是如果你改变一些东西,重建可能需要更长的时间,如果你需要调试东西,你可能没有任何可用的 C 级调试信息,你可能无法构建需要与此共享代码的任何其他模块。如果你不关心这些,那不是问题。如果您想更好地理解,您需要阅读文档,然后针对您没有得到的任何部分提出更具体的问题。
-
同时,你的第二个问题是完全不同的问题,所以分开问吧。
-
谢谢,为了清楚起见,我删除了第二个问题
-
通常我只在 UAT 之后部署 pyc 文件。关于你的“调试东西”,如果我想保持类似级别的回溯,我是否也应该部署 build/tmp.win32-2.7/Release 下的文件?
-
如果是这样,我应该如何根据这些目录的层次结构进行部署?
标签: python python-2.7 cython cythonize