从Cython代码生成C文件时,cython
编译器会添加有关所用版本的元数据和原始Cython文件的绝对文件路径。这看起来像这样:
/* BEGIN: Cython Metadata
{
"distutils": {
"depends": [
"/home/me/miniconda3/envs/package/lib/python3.4/site-packages/numpy/core/include/numpy/arrayobject.h",
"/home/me/miniconda3/envs/package/lib/python3.4/site-packages/numpy/core/include/numpy/ufuncobject.h"
],
"extra_compile_args": [
"-O3"
],
"include_dirs": [
"/home/me/miniconda3/envs/package/lib/python3.4/site-packages/numpy/core/include"
]
}
}
END: Cython Metadata */
# code removed for (relative) brevity
/* "../../.local/lib/python3.4/site-packages/Cython-0.23.4-py3.4-linux-x86_64.egg/Cython/Includes/numpy/__init__.pxd":728
* ctypedef npy_int16 int16_t
* ctypedef npy_int32 int32_t
* ctypedef npy_int64 int64_t # <<<<<<<<<<<<<<
* #ctypedef npy_int96 int96_t
* #ctypedef npy_int128 int128_t
*/
typedef npy_int64 __pyx_t_5numpy_int64_t;
当我与几个开发人员共享一个git存储库并且我们提交生成的C文件时,这会在git日志中创建大量无用的聊天。即使Cython代码中的微小更改也会在整个相应的C文件中创建更改。
有没有办法禁用此元数据的写入?我找到了一种通过设置编译器选项来删除文档字符串(as discussed here)的方法,但这并没有解决我的问题。我查看了其他编译器指令和选项,但没有发现任何可行的技巧。