Vcvarsall.bat, необходимый для компиляции python из visual studio 2015 (v 14)

Я пытаюсь установить numpy в python 3.5 под Windows 10 с установленной версией visual studio 2015.

Краткая версия: файл vcvarsall.bat отсутствует в папке C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC папки vs14. Почему?

Длинная версия: Выполнение pip install numpy дает мне эту ошибку error: Unable to find vcvarsall.bat

Исследование этой ошибки привело меня к нескольким ответам stackoverflow, которые помогли мне понять, что python нуждается в компиляторе С++ для компиляции некоторых пакетов. И это нужно сделать, используя ту же самую версию компилятора, которая была использована для компиляции python 3.5 ( ошибка: не удалось найти vcvarsall.bat). Мой python скомпилирован с использованием [MSC v.1900 64 бит (AMD64)] - это vs 14 (visual studio 2015)

Двигаясь дальше с моим исследованием, я узнал из: pip install дает ошибку: не удается найти vcvarsall.bat, что get_build_version() from $python_install_prefix/Lib/distutils/msvc9compiler.py возвращает версию vs, которая будет использоваться для поиска пути vcvarsall.bat Для меня этот метод возвращает 14. Итак, все правильно.

Теперь, когда я смотрю в папку C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC, отсутствует файл vcvarsall.bat.

Но когда я смотрю в папку C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC, есть vcvarsall.bat.

Почему vcvarsall.bat отсутствует с vs 14.0??

Ответ 1

Убедитесь, что в Visual Studio установлены С++ Common Tools.

Программы и функции → VS 2015 → Изменить

VS2015 setup

Ответ 2

Я столкнулся с этой проблемой, прежде чем пытаться установить numpy. Хотя мне не удалось исправить проблему "vcvarsall.bat", я обнаружил, что я могу скачать предварительно скомпилированные библиотеки здесь: http://www.lfd.uci.edu/~gohlke/pythonlibs/ Загрузите нужные библиотеки, перейдите туда, где загружены файлы .whl, и откройте окно командной строки. run 'pip install [имя файла whl]' Это установит для вас библиотеку без компиляции.

Ответ 3

Я загрузил средства сборки Microsoft Visual С++ Ссылка здесь, и все отлично поработало.

Ответ 4

Я встретил эту проблему, когда пытался создать ujson-пакет с python 2.7 (скомпилирован с VS 2015).

  • vcvarsall.bat: попробуйте скопировать vsvars32.bat(из той же директории - "c:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Tools" ) в vcvarsall.bat. Это все, что вам нужно для сборки
  • Другая проблема заключается в обнаружении версии VS в функции get_build_version() (distutils/msvc9compiler.py). Вам нужно изменить эту функцию, чтобы вернуть правильную версию VS.

Существует эта строка:

majorVersion = int(s[:-2]) - 6

он устанавливает majorVersion в 13, но правильная версия для VS 2015 равна 14. Таким образом, вам нужно добавить две строки, например:

if majorVersion == 13:
    majorVersion = 14 

Ответ 5

У меня была такая же проблема (Windows 7, Python 3.4, pip 7.1)

pip install mysqlclient
(...)
error: Unable to find vcvarsall.bat

Я выполнил следующие инструкции: https://www.linkedin.com/pulse/resolving-python-error-unable-find-vcvarsallbat-bhanu-pratap-singh/

Затем обновил pip до 9.0.1 с помощью

python -m pip install --upgrade pip

попробовал еще раз:

pip install mysqlclient

и voilà:

Successfully installed mysqlclient-1.3.12