Как предлагается здесь, я успешно установил Microsoft Visual C++ Compiler для Python 2.7, чтобы скомпилировать некоторый код Cython, но:
from distutils.core import setup
from Cython.Build import cythonize
setup(ext_modules = cythonize("module1.pyx"))
до сих пор производит:
ошибка: не удается найти vcvarsall.bat
Как скомпилировать код Cython с Python 2.7 (например, в Windows 7 x64)?
Примечание: я уже внимательно прочитал вопрос об ошибке: не удалось найти vcvarsall.bat, но основные ответы (включая изменение msvc9compiler.py
) не msvc9compiler.py
.
Я потратил на это несколько часов, и информацию было нелегко найти по ошибке: не удалось найти vcvarsall.bat, поэтому я публикую его здесь с функцией "ответить на свой вопрос":
Шаг 1: Установите Microsoft Visual C++ компилятор для Python 2.7
Замечание: вам не нужно изменять msvc9compiler.py
как часто предлагается во многих сообщениях на форуме.
Шаг 2: Просто добавьте import setuptools
, которые помогут Python и "Microsoft Visual C++ Compiler for Python 2.7" работать вместе.
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':'.'}})
Примечание: параметр script_args
позволяет запустить этот файл setup.py только с python setup.py
(т. script_args
CTRL + B в вашем любимом редакторе, таком как Sublime Text) вместо необходимости передавать аргументы командной строки, такие как: python setup.py build
.
Оно работает!