Ответ 1
Убедитесь, что в Visual Studio установлены С++ Common Tools.
Программы и функции → VS 2015 → Изменить
Я пытаюсь установить 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??
Убедитесь, что в Visual Studio установлены С++ Common Tools.
Программы и функции → VS 2015 → Изменить
Я столкнулся с этой проблемой, прежде чем пытаться установить numpy. Хотя мне не удалось исправить проблему "vcvarsall.bat", я обнаружил, что я могу скачать предварительно скомпилированные библиотеки здесь: http://www.lfd.uci.edu/~gohlke/pythonlibs/ Загрузите нужные библиотеки, перейдите туда, где загружены файлы .whl, и откройте окно командной строки. run 'pip install [имя файла whl]' Это установит для вас библиотеку без компиляции.
Я загрузил средства сборки Microsoft Visual С++ Ссылка здесь, и все отлично поработало.
Я встретил эту проблему, когда пытался создать ujson-пакет с python 2.7 (скомпилирован с VS 2015).
Существует эта строка:
majorVersion = int(s[:-2]) - 6
он устанавливает majorVersion в 13, но правильная версия для VS 2015 равна 14. Таким образом, вам нужно добавить две строки, например:
if majorVersion == 13:
majorVersion = 14
У меня была такая же проблема (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