c - 如何在带有 python 3.8 的 Windows 10 上使用 Cython
问题描述
我想知道如何在 Cython 的帮助下正确地将 py 文档转换为 C 但总是有一些错误。
D:\Cython\test4>python setup.py build_ext --inplace
running build_ext
Traceback (most recent call last):
File "setup.py", line 4, in <module>
setup(ext_modules = cythonize('hello.pyx', compiler_directives={'language_level': 3}))
File "C:\Users\Alexandr\AppData\Local\Programs\Python\Python38\lib\distutils\core.py", line 148, in setup
dist.run_commands()
File "C:\Users\Alexandr\AppData\Local\Programs\Python\Python38\lib\distutils\dist.py", line 966, in run_commands
self.run_command(cmd)
File "C:\Users\Alexandr\AppData\Local\Programs\Python\Python38\lib\distutils\dist.py", line 985, in run_command
cmd_obj.run()
File "C:\Users\Alexandr\AppData\Local\Programs\Python\Python38\lib\distutils\command\build_ext.py", line 306, in run
self.compiler = new_compiler(compiler=self.compiler,
File "C:\Users\Alexandr\AppData\Local\Programs\Python\Python38\lib\distutils\ccompiler.py", line 1032, in new_compiler
return klass(None, dry_run, force)
File "C:\Users\Alexandr\AppData\Local\Programs\Python\Python38\lib\distutils\cygwinccompiler.py", line 282, in __init__
CygwinCCompiler.__init__ (self, verbose, dry_run, force)
File "C:\Users\Alexandr\AppData\Local\Programs\Python\Python38\lib\distutils\cygwinccompiler.py", line 157, in __init__
self.dll_libraries = get_msvcr()
File "C:\Users\Alexandr\AppData\Local\Programs\Python\Python38\lib\distutils\cygwinccompiler.py", line 86, in get_msvcr
raise ValueError("Unknown MS Compiler version %s " % msc_ver)
ValueError: Unknown MS Compiler version 1916
我有 hello.pyx 文件,其中包含此代码
cpdef int test(int x): cdef int y = 1 cdef int i for i in range(1, x+1): y *= i return y
Setup.py 文件包括
from distutils.core import setup from Cython.Build import cythonize setup(ext_modules = cythonize('hello.pyx', compiler_directives={'language_level': 3}))
Microsoft Visual Studio 已安装,gcc 编译器也已安装。我应该怎么办?
解决方案
推荐阅读
- python - 无法使用 scikit-learn 在 Flask 中加载模型
- python - Twitch Viewer 机器人脚本中的 Python 线程错误
- java - Java 11 功能流在方法调用上推断错误类型
- mysql - 带有 JOIN 的 SQL 返回所有组合而不是相应的匹配项
- rest - 在 REST API 的 Swagger 定义中实现分页
- json - django 检索对象,空值
- javascript - 当用户在 ReactJS 中单击删除时如何删除视频预览
- android - 应用程序图标:为什么我会收到来自 Lint 的“图标大小不正确”警告?
- python - Python 和 pymysql - 无法通过 MySQL 执行系统命令
- jquery - 在表中添加数组数据,在 laravel 中的数据库中仅插入单行