Cython reload with pyximport reload_support not working



关于在IPython(我使用Spyder)中重新加载Cython文件的问题有很多。下面是我的实现,它似乎检查了其他问题中的所有框:

from importlib import reload
import pyximport
import sys
pyximport.install(reload_support=True)
try:
del sys.modules['cython_test.ctest']
del ctest
except:
pass
import cython_test.ctest as ctest
ctest = reload(ctest)
ctest.test()

但是,它不起作用,我必须重新启动内核以获得文件的更新版本。

如果它是相关的,下面是我如何生成.so文件:

from setuptools import setup
from Cython.Build import cythonize
import os
file = os.environ.get("CYTHONIZE_FILE", "")
setup(ext_modules=cythonize(f"{file}.pyx"))

我将在命令行中调用它:

CYTHONIZE_FILE=ctest python setup.py build_ext --inplace

任何想法?

问题显然与构建文件和创建.so文件有关。如果我根本不这样做(即,完全删除.so文件并重新启动内核),我的代码工作。

相关内容

  • 没有找到相关文章