【发布时间】:2021-08-22 07:23:10
【问题描述】:
简而言之,我正在制作一个项目,我需要 Cython 才能使其工作。在 Windows 上安装 Cython 时,我已经阅读了每一行文档,并且完全按照上面所说的进行了操作。尽管如此,我仍然无法让 Cython 正常工作。当我导入模块时,一切正常。当我尝试从 .pyx 文件编译时出现问题。
C 文件生成得很好,但有两个问题。首先是无论出于何种原因,我都得到:
raise ValueError("Unknown MS Compiler Version 1929")
它并没有就此结束。当我尝试查找 pyd 文件时,会生成 0 个文件。目录中没有 pyd 文件。在使用 #include "Python.h" 的 C 文件中,它显示错误,并给出以下消息:
#include errors detected. Please update your includePath. IntelliSense features for this translation unit (C:\Users\...\Workspace\cython_test\example_py.c) will be provided by the Tag Parser.
我已尝试到处寻找解决此问题的方法,但绝对没有任何帮助...我尝试安装 MSVC,并在我的环境变量中正确设置 MinGW。我试过重启电脑,卸载并重新安装 Python、MinGW、VSCode,甚至尝试查看文档寻找解决方法,但均无济于事。
【问题讨论】:
-
我并没有真正的解决方案,但是:1) 你肯定不想尝试使用 MinGW - 对于最新版本的 Python,你必须编译你的扩展Windows 上带有 MSVC 的模块。不要浪费更多时间来设置 MinGW。 2)你应该告诉我们你是如何编译它的?您是在使用 setup.py 文件还是在命令行上手动调用编译器。 3)(如果使用 setup.py)尝试导入 setuptools(首先) - 它有时会比 distutils 管理的更好。
-
我终于解决了这个问题。 Cython 文档告诉您通过添加到 disutils.py 来使用 MinGW 作为编译器,然后还告诉您,如果您希望能够编译 C++ 和 C 文件,则需要下载 Visual Studio C++。它链接到错误版本的 Windows SDK 以供下载。
标签: python visual-studio-code cython vscode-settings cythonize