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