关于python:Spyder在脚本中导入时无法识别cython模块

Spyder does not recognise cython modules when importing in a script

我有一个Cython脚本example1.pyx,它具有各种功能。我正在尝试在Python脚本中使用其中一个函数。为此,我尝试从Cython模块导入以下功能:

1
    from example1 import myfunction1

我正在使用Spyder运行我的python脚本。当我运行它时,我得到以下错误

1
    ModuleNotFoundError: No module named 'example1'

出于某种原因,.pyx扩展脚本不能识别为可以导入的模块。我可以成功地导入其他的python脚本,但在cython.pyx脚本中却没有成功的机会。原来我不是在编译python脚本。所以我用下面的脚本来完成:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
from setuptools import setup, Extension
import numpy

from Cython.Distutils import build_ext as _build_ext


list_pyx = ['cydtw', 'cygak', 'cycc', 'soft_dtw_fast']
ext = [Extension(
        '%s' % s, ['%s.pyx' % s], include_dirs=[numpy.get_include()]
    ) for s in list_pyx]

setup(
    include_dirs=[numpy.get_include()],
    ext_modules=ext,
    cmdclass={'build_ext': _build_ext},
)

当我运行这个,我得到的错误说我需要Visual C++ 14编译器。查看HTTPS://Wik.Python .Org/Mun/WiDOWS编译器中的文档,我已经安装的VisualStudio 15应该具有Visual C++ 14,这是令人困惑的。所以我更新了我的设置工具。已经排除了这个错误,但我发现它找不到文件路径c;Program FilesMicrosoft SDKWindowsV8.1lib。我看不出来。所以我现在就困在那里了。有什么线索吗?


设法解决了这个问题。没有安装VisualStudio 2015上的VisualC++编译器。

若要检查,请打开Visual Studio 15。

在Visual C++中查看模板。

我可以看到Visual C++ 2015工具的Windows桌面需要安装。

这包括用于Windows桌面的工具和库,其中包括编译器、通用CRT和Windows 8.1 SDK。已运行安装。它将要求您同时关闭Visual Studio。

可以编译cython脚本,也可以在我的python项目中调用脚本中的函数。

我要说的是,你必须小心你的编译器版本和Python版本的匹配。可能存在兼容性问题。

有关Visual Studio生成工具的详细信息,请参见:https://landinghub.VisualStudio.com/Visual-CPP-Build-Tools

对于安装非纯python包或编译cython或pyrex文件,有关兼容性的详细信息如下:https://wiki.python.org/moin/windowscompilers