Cython C++缓存 - 如何清除

Cython C++ Cache - How to Clear

本文关键字:清除 何清除 C++ 缓存 Cython      更新时间:2023-10-16

我在远程服务器上运行Jupyter笔记本。此笔记本的一部分调用 Cython .pyx 文件cython_file该文件,其中包含一个名为 cpp_function 的 c++ 函数定义,并从笔记本调用,如下所示:

from clibs.cython_file import cpp_function

.pyx文件中,我调用了一个 c++ 头文件cpp_file.h如下所示:

cdef extern from "/home/user/cpp_file.h":

在这个头文件中,我有一个在cython中定义的函数,为了参数起见,它只是一个简单的逻辑函数。

我的问题是这样的;有时当我更改.h c ++文件并重新启动笔记本内核并重新运行代码时,没有任何变化。它仍然使用旧版本的.h文件。好像它被缓存在某个地方。

在重新启动内核之前,我已经删除了所有.pyxbldc.pyc文件,但无济于事。

我的.pyxbld文件如下所示:

def make_ext(modname, pyxfilename):
    from distutils.extension import Extension
    return Extension(name=modname,
                     sources=[pyxfilename], extra_compile_args=['-fopenmp', '-w'], extra_link_args=['-fopenmp'], language='c++')

关于如何阻止缓存c ++文件的任何想法?!

这不会阻止缓存C++文件,但您可以在运行%%cython单元格魔术之前清除缓存。

!rm -rf ~/.cache/ipython/cython