You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spyder中导入Cython模块失败:无法识别.pyx格式文件

Fixing "ModuleNotFoundError: No module named 'example1'" When Importing Cython Functions

别担心,这是Cython新手最常碰到的问题之一——.pyx文件本质是Cython的源文件,不能直接被Python解释器识别并导入,必须先把它编译成Python能识别的二进制扩展模块才行。下面是一步步的解决方法:

Step 1: Create a setup.py build script

首先你需要写一个setup.py文件,用来告诉Python怎么编译你的Cython代码。在和example1.pyx同一个文件夹下创建这个文件,内容如下:

from setuptools import setup
from Cython.Build import cythonize

setup(
    name="example1",
    ext_modules=cythonize("example1.pyx"),
)

这个脚本的作用是调用Cython的cythonize工具,把.pyx文件转换成C语言源码,再进一步编译成Python可导入的扩展模块。

Step 2: Compile the Cython module

打开终端(或者在Spyder的IPython控制台里),切换到你的文件所在目录,运行以下命令:

python setup.py build_ext --inplace
  • build_ext:告诉setuptools要构建C扩展模块
  • --inplace:把编译好的模块直接放在当前目录下,这样Python导入时能直接找到它

运行完这个命令后,你会看到文件夹里多了几个文件:

  • example1.c:从Cython源码生成的C语言文件
  • example1.<your-platform>.so(Linux/macOS)或者example1.pyd(Windows):这就是Python能识别的二进制模块文件

Step 3: Test the import again

现在回到你的Python脚本,重新运行from example1 import myfunction1,应该就能成功导入了。如果还是不行,试试这几个小技巧:

  • 确保你的Python脚本和编译后的.so/.pyd文件在同一个目录
  • 如果用Spyder,可能需要重启一下IPython内核(点击控制台右上角的重启按钮),让它重新加载新生成的模块
  • 检查有没有安装Cython和setuptools:如果没装,先运行pip install cython setuptools

内容的提问来源于stack exchange,提问作者Sherry

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 03:49:32