编译Cython代码时出现“错误:无法找到vcvarsall.bat”

Bas*_*asj 10 python windows distutils cython visual-c++

作为建议在这里,我已成功安装了微软的Visual C ++编译器为Python 2.7编译一些用Cython代码,但是:

from distutils.core import setup
from Cython.Build import cythonize
setup(ext_modules = cythonize("module1.pyx"))
Run Code Online (Sandbox Code Playgroud)

仍然产生:

错误:找不到vcvarsall.bat

如何使用Python 2.7编译Cython代码(例如在Windows 7 x64上)?

注意:我已经仔细阅读了以下错误问题:无法找到vcvarsall.bat,但主要答案(包括修改msvc9compiler.py)都无法解决。

Bas*_*asj 18

我花了几个小时在此上,并且不容易在错误中找到该信息:无法找到vcvarsall.bat,这就是为什么我在此处使用“回答自己的问题”功能将其发布的原因:

  • 步骤1:安装用于Python 2.7的Microsoft Visual C ++编译器

  • 备注:您没有需要修改msvc9compiler.py为经常在一些论坛帖子建议

  • 步骤2:只需添加import setuptools将有助于Python和“ Python 2.7的Microsoft Visual C ++编译器”一起工作。

    import setuptools  # important
    from distutils.core import setup
    from Cython.Build import cythonize
    setup(ext_modules=cythonize("module1.pyx", build_dir="build"),
                                               script_args=['build'], 
                                               options={'build':{'build_lib':'.'}})
    
    Run Code Online (Sandbox Code Playgroud)

    注意:该script_args参数允许仅使用该setup.py python setup.py(即您喜欢的编辑器(如Sublime Text)中的CTRL + B)运行,而不必传递如下命令行参数python setup.py build

有用!

  • 该死的!这是我在网上找到的唯一可行的答案。它浪费了我一个小时!(╯°Д°)╯︵┻━┻,谢谢您的回答。 (3认同)
  • 只需添加“ import setuptools”,错误就会消失 (2认同)

KV8*_*V88 6

Python >= 3.5

我想评论@Basj(/sf/answers/3722082171/)的答案,但我不能,所以我道歉。我只想为使用 Python >= 3.5 的人添加@Basj 答案,而不是 Microsoft Visual C++ Compiler for Python 2.7,您可以在此安装程序Build Tool for Visual Studio 2019中仅安装C++,或者您可以简单地使用Chocolatey安装它.

  • “Build Tool for Visual Studio 2019”的链接引导我下载整个 Visual Studio。这是故意的吗? (2认同)
  • @Yehdhih ANNA,这就是为什么我建议巧克力味的原因,就像我上面的回答以及我对上面 Idonknow 问题的回答一样! (2认同)