Ошибка: Не удалось найти vcvarsall.bat

Я попытался установить пакет Python dulwich :

pip install dulwich 

Но я получаю загадочное сообщение об ошибке:

 error: Unable to find vcvarsall.bat 

То же самое происходит, если я попытаюсь установить пакет вручную:

 > python setup.py install running build_ext building 'dulwich._objects' extension error: Unable to find vcvarsall.bat 

23 Solutions collect form web for “Ошибка: Не удалось найти vcvarsall.bat”

Обновление : комментарии указывают, что инструкции здесь могут быть опасными. Рассмотрите возможность использования версии Visual C ++ 2008 Express или специально созданного компилятора Microsoft Visual C ++ для Python ( подробнее ) и НЕ используя оригинальный ответ ниже. Исходное сообщение об ошибке означает, что требуемая версия Visual C ++ не установлена.


Для установок Windows:

При запуске setup.py для установки пакетов Python 2.7 ищет установленную Visual Studio 2008. Вы можете обмануть Python, чтобы использовать новую Visual Studio, установив правильный путь в переменной окружения VS90COMNTOOLS перед вызовом setup.py .

Выполните следующую команду на основе установленной версии Visual Studio:

  • Visual Studio 2010 (VS10): SET VS90COMNTOOLS=%VS100COMNTOOLS%
  • Visual Studio 2012 (VS11): SET VS90COMNTOOLS=%VS110COMNTOOLS%
  • Visual Studio 2013 (VS12): SET VS90COMNTOOLS=%VS120COMNTOOLS%
  • Visual Studio 2015 (VS14): SET VS90COMNTOOLS=%VS140COMNTOOLS%

ПРЕДУПРЕЖДЕНИЕ. Как отмечено ниже, этот ответ вряд ли будет работать, если вы пытаетесь скомпилировать модули python.

Подробные сведения см. В разделе Building lxml для Python 2.7 для Windows .

Вы можете установить скомпилированную версию с http://www.lfd.uci.edu/~gohlke/pythonlibs/

Я нашел решение. У меня была такая же проблема, и ошибка, установив «amara». Я установил mingw32, но distutils нужно было настроить.

  1. У меня уже установлен Python 2.6.
  2. Я установил mingw32 в C:\programs\mingw\
  3. Добавьте каталог bin mingw32 в переменную среды: добавьте c:\programs\MinGW\bin; к PATH
  4. Отредактируйте (создайте, если не существующий) файл distutils.cfg, расположенный в папке C:\Python26\Lib\distutils\distutils.cfg :

     [build] compiler=mingw32 
  5. Теперь запустите easy_install.exe amara .

Убедитесь, что среда установлена, открыв новый cmd.exe .

Если вы хотите скомпилировать с Visual Studio C ++ вместо mingw …

  1. Запустите python.exe чтобы отобразить, какая версия VC ++ была скомпилирована (пример показан ниже).

    Важно использовать соответствующую версию компилятора Visual C ++, с которой был скомпилирован Python, поскольку get_build_version от get_build_version предотвращает смешивание версий ( за предупреждение Piotr ).

    • Желтым (сверху) является Python 2.7, скомпилированный с MSC v.1500 (Visual Studio C ++ 2008)
    • Красный (нижний) – это Python 3.4.1, скомпилированный с MSC v.1600 (Visual Studio C ++ 2010)

    Пример из командной строки, содержащей Python 2.7, скомпилированный с MSC v.1500 и Python 3.4.1, скомпилированный с MSC v.1600

  2. Используйте таблицу ниже [1] для соответствия внутренней версии VC ++ с соответствующей версией Visual Studio:

     MSC v.1000 -> Visual C++ 4.x MSC v.1100 -> Visual C++ 5 MSC v.1200 -> Visual C++ 6 MSC v.1300 -> Visual C++ .NET MSC v.1310 -> Visual C++ .NET 2003 MSC v.1400 -> Visual C++ 2005 (8.0) MSC v.1500 -> Visual C++ 2008 (9.0) MSC v.1600 -> Visual C++ 2010 (10.0) MSC v.1700 -> Visual C++ 2012 (11.0) MSC v.1800 -> Visual C++ 2013 (12.0) MSC v.1900 -> Visual C++ 2015 (14.0) MSC v.1910 -> Visual C++ 2017 (15.0) 
  3. Загрузите и установите соответствующую версию Visual Studio C ++ с предыдущего шага.
    Дополнительные примечания для конкретных версий VC ++ приведены ниже.

    Примечания для Visual Studio C ++ 2008

    Для 32-разрядных компиляторов загрузите Visual Studio C ++ 2008 Express Edition .

    Для 64-разрядных компиляторов [2] [3] загрузите Windows SDK для Windows 7 и .NET Framework 3.5 с пакетом обновления 1 (SP1) .

    • Снимите флажок Все, кроме Developer Tools >> Visual C++ Compilers чтобы сэкономить время и место на диске при установке инструментов SDK, которые вам в противном случае не нужны.

    Примечания для Visual Studio C ++ 2010

    Согласно Microsoft, если вы установили Visual Studio 2010 SP1, возможно, удалили компиляторы и библиотеки для VC ++.
    Если это так, загрузите обновление компилятора Visual C ++ 2010 SP1 .

    Примечания для Visual Studio C ++ 2015

    Если вам не нужна IDE Visual Studio, загрузите Visual Studio C ++ 2015 Build Tools .

    Примечания для Visual Studio C ++ 2017

    Если вам не нужна IDE Visual Studio, загрузите Build Tools для Visual Studio 2017 .

    Предложение . Если у вас установлена ​​как 32-разрядная, так и 64-разрядная установка Python, вы также можете использовать virtualenv для создания отдельных сред Python, чтобы вы могли использовать тот или иной за один раз, не путаясь с вашим путем, чтобы выбрать, какая версия Python для использовать.

Согласно @srodriguex , вы можете пропустить ручную загрузку файла ванны (шаги 2-4), вместо этого скопировав несколько командных файлов туда, где Python выполняет поиск, следуя этому ответу . Если это не сработает, выполните следующие шаги, которые изначально работали для меня.

  1. Откройте cmd.exe

  2. Прежде чем пытаться установить что-то, что требует расширений C, запустите следующий пакетный файл, чтобы загрузить среду компилятора VC ++ в сеанс (т. Е. Переменные среды, путь к компилятору и т. Д.).

    Выполнение:

    • 32-битные компиляторы:

      Примечание . 32-разрядные установки Windows будут иметь только C:\Program Files\

      "C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\Tools\vsvars32.bat"

    • 64-битные компиляторы:

      "C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\Tools\vsvars64.bat"

      Примечание . Да, исходные 64-разрядные компиляторы находятся в Program Files (x86) . Не спрашивай меня, почему.
      Кроме того, если вам интересно, какая разница между vcvars64.bat и vcvarsx86_amd64.bat или, что еще важнее, разница между amd64 и x86_amd64 , первые предназначены для собственных 64-битных компиляторов, а последние являются 64-разрядными кросс-компиляторами, которые могут запускается при 32-разрядной установке Windows.

    Обновить:
    Если по какой-то причине вы получаете error: ... was unexpected at this time. где ... – это несколько рядов символов, то вам нужно проверить, что у переменной пути нет никаких посторонних символов, таких как дополнительные цитаты или блуждающие символы. Пакетный файл не сможет обновить ваш путь к сеансу, если он не может понять его в первую очередь.

  3. Если это пойдет хорошо, вы должны получить одно из следующих сообщений в зависимости от того, какая версия VC ++ и какая команда вы запускали:

    Для 32-разрядных компиляторов:
    Setting environment for using Microsoft Visual Studio 20xx x86 tools.

    Для 64-разрядных компиляторов:
    Setting environment for using Microsoft Visual Studio 20xx x64 tools.

  4. Теперь запустите настройку с помощью python setup.py install или pip install pkg-name

  5. Надейтесь и скрестите пальцы, чтобы планеты правильно выровнялись для взаимодействия VC ++.

Что происходит? Модули Python могут быть записаны на C или C ++ (как правило, для скорости). Если вы попытаетесь установить такой пакет с помощью Pip (или setup.py ), он должен скомпилировать этот C / C ++ из источника. Из коробки Pip нагло возьмет на себя компилятор Microsoft Visual C ++. Если у вас его нет, вы увидите это загадочное сообщение об ошибке «Ошибка: не удалось найти vcvarsall.bat».

Предложенное решение – установить компилятор C / C ++, либо Microsoft Visual C ++, либо MinGW (проект с открытым исходным кодом). Тем не менее, установка и настройка запрещены. (Edit 2014: Microsoft опубликовала специальный компилятор C ++ для Python 2.7)

Самое простое решение – использовать установщики Windows Christoph Gohlke (.msi) для популярных пакетов Python. Он строит инсталляторы для Python 2.x и 3.x, 32 бит и 64 бит. Вы можете скачать их с http://www.lfd.uci.edu/~gohlke/pythonlibs/


Если вы тоже думаете, что «Ошибка: не удалось найти vcvarsall.bat» – это смехотворное загадочное и бесполезное сообщение, пожалуйста, прокомментируйте ошибку на http://bugs.python.org/issue2943, чтобы заменить ее более полезными и удобными для пользователя, дружелюбное сообщение.

Для сравнения, Ruby поставляется с менеджером пакетов Gem и предлагает квази-официальный компилятор C / C ++, DevKit. Если вы попытаетесь установить пакет без него, вы увидите это полезное полезное сообщение:

Обновите свой PATH, чтобы включить инструменты сборки или загрузить DevKit из http://rubyinstaller.org/downloads и следуйте инструкциям на странице http://github.com/oneclick/rubyinstaller/wiki/Development-Kit

Вы можете прочитать более подробную информацию о упаковке Python на странице https://stackoverflow.com/a/13445719/284795

Вам нужно будет установить компилятор Microsoft, совместимый с компилятором, используемым для создания Python. Это означает, что вам нужен Visual C ++ 2008 (или более новый, с некоторой настройкой ).

Microsoft теперь предоставляет объединенный компилятор и заголовки, чтобы иметь возможность компилировать расширения Python на незабываемый URL:

Компилятор Microsoft Visual C ++ для Python 2.7

http://aka.ms/vcpython27

Это относительно небольшой пакет; 85 МБ для загрузки, установки без прав администратора, не требуется перезагрузка. Название немного вводит в заблуждение, компилятор будет работать для любой версии Python, первоначально скомпилированной с Visual C ++ 2008, а не только с Python 2.7.

Если вы запустите интерактивную подсказку Python или распечатайте sys.version , найдите строку версии MSC ; если это MSC v.1500 вы можете использовать этот инструмент.

От оригинального объявления до списка distutils :

Microsoft выпустила пакет компилятора для Python 2.7, чтобы упростить людям сбор и распространение своих модулей расширения C в Windows. Компилятор Microsoft Visual C ++ для Python 2.7 (он же VC9) доступен по адресу : http://aka.ms/vcpython27

Этот пакет содержит все инструменты и заголовки, необходимые для сборки модулей расширения C для 32-разрядных и 64-разрядных Python 2.7 (обратите внимание, что для некоторых модулей расширения требуются сторонние зависимости, такие как OpenSSL или libxml2, которые не включены). Другие версии Python, созданные с помощью Visual C ++ 2008, также поддерживаются, поэтому «Python 2.7» – это просто реклама – он отлично работает с 2.6 и 3.2.

Обратите внимание, что вам необходимо установить setuptools 6.0 или новее (перечисленные в системных требованиях на странице загрузки). Проект, который вы устанавливаете, должен использовать setuptools.setup() , а не distutils или автоматическое обнаружение не будет работать.

Microsoft заявила, что хочет сохранить стабильный URL, чтобы автоматические скрипты могли легко ссылаться на нее.

У меня была такая же проблема, поэтому я расскажу здесь свою историю, надеясь, что это поможет кому-то другому с теми же проблемами и сохранить их за пару часов, которые я только что провел:

У меня есть mingw (g ++ (GCC) 4.6.1) и python 2.7.3 в окне Windows 7, и я пытаюсь установить PyCrypto.

Все это началось с этой ошибки при запуске setup.py install:

 error: Unable to find vcvarsall.bat 

Легко решается после ошибки в googling, указав mingw в качестве компилятора выбора:

 setup.py install build --compiler=mingw32 

Проблема в том, что тогда у меня другая ошибка:

 configure: error: cannot run C compiled programs. 

Оказывается, мой антивирус блокировал выполнение только что скомпилированного .exe. Я просто отключил антивирусный «резидентный экран» и перешел к следующей ошибке:

 cc1.exe: error: unrecognized command line option '-mno-cygwin' error: command 'gcc' failed with exit status 1 

Это разрешило это: «Либо установите более старую версию MinGW, либо отредактируйте distutils \ cygwinccompiler.py в вашем каталоге Python, чтобы удалить все экземпляры -mno-cygwin». ( отсюда )

Теперь я могу наконец начать работать.

Похоже, что он ищет компиляторы VC, поэтому вы можете попытаться указать тип компилятора с -c mingw32 , так как у вас есть msys

 python setup.py install -c mingw32 

У меня есть python 2.73 и windows 7. Решение, которое сработало для меня, было:

  1. Добавлен каталог bin mingw32 в переменную окружения: добавьте PATH с C:\programs\mingw\bin;
  2. Создан distutils.cfg, расположенный в C:\Python27\Lib\distutils\distutils.cfg содержащий:

     [build] compiler=mingw32 

Чтобы иметь дело с MinGW, который больше не распознает флаг -mno-cygwin, удалите флаг в C: \ Python27 \ Lib \ distutils \ cygwincompiler.py строке 322 – 326, поэтому он выглядит так:

  self.set_executables(compiler='gcc -O -Wall', compiler_so='gcc -mdll -O -Wall', compiler_cxx='g++ -O -Wall', linker_exe='gcc', linker_so='%s %s %s' % (self.linker_dll, shared_option, entry_point)) 

Посмотрите файл setup.py пакета, который вы пытаетесь установить. Если это более старый пакет, он может импортировать distutils.core.setup() а не setuptools.setup() .

Я столкнулся с этим (в 2015 году) с сочетанием этих факторов:

  1. Компилятор Microsoft Visual C ++ для Python 2.7 от http://aka.ms/vcpython27

  2. Более старый пакет, в котором используется distutils.core.setup()

  3. Попытка сделать python setup.py build а не использовать pip .

Если вы используете недавнюю версию pip, она заставит (monkeypatch) пакет использовать setuptools, даже если его setup.py вызывает distutils. Однако, если вы не используете pip и вместо этого выполняете python setup.py build , процесс сборки будет использовать distutils.core.setup() , который не знает о месте установки компилятора.


Решение

Шаг 1. Откройте соответствующую командную строку Visual C ++ 2008.

Откройте меню «Пуск» или «Пуск» и выполните поиск «32-разрядной командной строки Visual C ++ 2008» (если ваш питон 32-разрядный) или «64-разрядная командная строка Visual C ++ 2008» (если ваш питон 64-разрядный) , Запустить его. Командная строка должна указывать Visual C ++ 2008 … в строке заголовка.

Шаг 2: Установите переменные среды

Установите эти переменные среды в только что открывшейся командной строке.

 SET DISTUTILS_USE_SDK=1 SET MSSdk=1 

Ссылка http://bugs.python.org/issue23246

Шаг 3: Сборка и установка

cd к пакету, который вы хотите создать, и запустить python setup.py build , а затем python setup.py install . Если вы хотите установить в virtualenv, активируйте его перед сборкой.

Может быть, кому-то может быть интересно, следующее работало для меня для пакета py2exe. (У меня Windows 7 64-разрядный и переносимый python 2.7, Visual Studio 2005 Express с Windows SDK для Windows 7 и .NET Framework 4)

 set VS90COMNTOOLS=%VS80COMNTOOLS% 

тогда:

 python.exe setup.py install 

Я попробовал все вышеперечисленные ответы и нашел, что все они не работают, возможно, я использовал Windows 8 и установил Visual Studio 2012. В этом случае это то, что вы делаете.

Файл vcvarsall.bat находится здесь: C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC

Просто выберите файл и скопируйте его.

Затем перейдите в этот каталог: C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\Tools

и вставьте файл. И тогда все должно быть хорошо.

Я потратил почти 2 дня на выяснение того, как исправить эту проблему в моей 64-разрядной версии python 3.4: Python 3.4.3 (v3.4.3: 9b73f1c3e601, Feb 24 2015, 22:44:40) [MSC v.1600 64 бит (AMD64 )] на win32

Решение 1, сложно: (прежде чем читать это, прочитайте первое решение 2 ниже) Наконец, это помогло мне:

  1. установить Visual C ++ 2010 Express
  2. установите Microsoft Windows SDK v7.1 для Windows 7
  3. создать файл вручную vcvars64.bat в C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64 который содержит CALL "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64 или другой путь в зависимости от того, где вы были установлены
  4. (это кажется необязательным) установите Microsoft Visual Studio 2010 с пакетом обновления 1 вместе с Microsoft Visual C ++ 2010 с пакетом обновления 1 (SP1) для компилятора для Windows SDK 7.1
  5. после этого я попытался pip install numpy но получил следующую ошибку:

     File "numpy\core\setup.py", line 686, in get_mathlib_info raise RuntimeError("Broken toolchain: cannot link a simple C program") RuntimeError: Broken toolchain: cannot link a simple C program 

    Я изменил mfinfo на None в C:\Python34\Lib\distutils\msvc9compiler.py на этот https://stackoverflow.com/a/23099820/4383472

  6. наконец, после команды pip install numpy мой антивирус avast пытался вмешаться в процесс установки, но я быстро отключил его

Потребовалось очень много времени – несколько минут для компиляции numpy, я даже подумал, что произошла ошибка, но, в конце концов, все было в порядке.

Решение 2, легко: (Я знаю, что этот подход уже упоминался в высоко проголосовавшем ответе , но позвольте мне повторить, поскольку это действительно проще). Пройдя всю эту работу, я понял, что лучший способ для меня – это просто использовать уже предварительно скомпилированные двоичные файлы из http://www.lfd.uci.edu/~gohlke/pythonlibs/ в будущем. Очень мало шансов, что мне когда-нибудь понадобится пакет (или версия пакета), который этот сайт не содержит. Процесс установки также намного быстрее. Например, чтобы установить numpy :

  1. donwload numpy‑1.9.2+mkl‑cp34‑none‑win_amd64.whl (если у вас есть Python 3.4 64-bit) с этого сайта
  2. в командной строке или powershell установите его с помощью pip pip install numpy‑1.9.2+mkl‑cp34‑none‑win_amd64.whl (или полный путь к файлу в зависимости от того, как открывается pip install numpy‑1.9.2+mkl‑cp34‑none‑win_amd64.whl )

Вы можете загрузить бесплатный Visual C ++ 2008 Express Edition с http://go.microsoft.com/?linkid=7729279 , который установит переменную окружения VS90COMNTOOLS во время установки и, следовательно, построит с совместимым компилятором.

Как упоминал в комментарии @PiotrDobrogost, его ответ на этот другой вопрос подробно рассказывает о том, почему Visual C ++ 2008 – это правильная вещь для сборки, но это может измениться по мере того, как сборка Windows Python переходит к более новым версиям Visual Studio: Building lxml для Python 2.7 на Windows

У меня была эта проблема с использованием Python 3.4.1 на Windows 7 x64 , и, к сожалению, для пакетов, которые мне нужны, не было подходящих exe или колес, которые я мог бы использовать. Эта система требует нескольких «обходных решений», которые подробно описаны ниже (и TLDR внизу ).

Используя информацию в ответе Jaxrtech выше , я решил, что мне нужна Visual Studio C ++ 2010 (sys.version return MSC v.1600), поэтому я установил Visual C ++ 2010 Express из ссылки в своем ответе, который является http://go.microsoft .com /? linkid = 9709949 . Я установил все с обновлениями, но, как вы можете прочитать ниже, это было ошибкой. В это время должна быть установлена ​​только оригинальная версия Express (ничего не обновляется).

vcvarsall.bat теперь присутствовал, но при установке пакета возникла новая ошибка, query_vcvarsall raise ValueError(str(list(result.keys())))ValueError: [u'path'] . С этой ошибкой возникают другие проблемы с stackoverflow, такие как ошибки при построении / установке модуля C для Python 2.7

Я определил из этого ответа, что в 2010 Express только устанавливает 32-битные компиляторы. Чтобы получить 64-битные (и другие) компиляторы, вам необходимо установить Windows 7.1 SDK. См. http://msdn.microsoft.com/en-us/windowsserver/bb980924.aspx

Это меня не установило, и установщик installation failed with return code 5100 ошибки installation failed with return code 5100 . Я нашел решение по следующей ссылке: http://support.microsoft.com/kb/2717426 . Короче говоря, если установлены более новые версии x86 и x64 Microsoft Visual C ++ 2010 Redistributable, они конфликтуют с установщиками SDK и требуют деинсталляции в первую очередь.

Затем SDK установил, но я заметил, что vcvars64.bat все еще не существует в C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin и его подпапках. vcvarsall.bat запускает командный файл vcvars64, поэтому без него пакет python все равно не будет установлен (я забыл ошибку, которая была показана в это время).

Затем я нашел несколько инструкций: http://www.cryptohaze.com/wiki/index.php/Windows_7_Build_Setup#Download_VS_2010_and_Windows_SDK_7.1 Следуя инструкциям, я уже установил Express и 7.1 SDK, поэтому установил SDK 7.1 SP1, и сделал Отсутствует исправление файла заголовка. Затем я вручную создал vcvars64.bat с содержимым CALL setenv /x64 . Здесь я вставлю все эти инструкции, чтобы они не потерялись.

Шаг 1 – загрузить Visual Studio Express 2010.

http://www.microsoft.com/visualstudio/en-us/products/2010-editions/express – хорошее место для начала. Загрузите программу установки и запустите ее (vc_web.exe). Вам не нужна дополнительная загрузка SQL 2008.

Вам также понадобится Windows SDK (в настоящее время 7.1) для 64-битных компиляторов – если вы не хотите делать только 32-битные сборки, которые не полностью поддерживаются …

http://www.microsoft.com/en-us/download/details.aspx?id=8279 – хорошая отправная точка для загрузки – вы будете запускать winsdk_web.exe при загрузке!

Установка по умолчанию здесь просто прекрасна.

Наконец, загрузите и установите обновление Windows SDK 7.1 SP1: http://www.microsoft.com/en-us/download/details.aspx?id=4422

И, чтобы исправить отсутствующий файл заголовка, VS2010 SP1. http://www.microsoft.com/downloads/en/confirmation.aspx?FamilyID=75568aa6-8107-475d-948a-ef22627e57a5

И, черт возьми, исправьте отсутствующий командный файл для VS2010 Express. Это становится совершенно абсурдным.

В C: \ Program Files (x86) \ Microsoft Visual Studio 10.0 \ VC \ bin \ amd64 создайте «vcvars64.bat» со следующим (вам нужно будет работать как администратор):

CALL setenv / x64

Мой пакет python все еще не устанавливал (не могу вспомнить ошибку). Затем я нашел некоторые инструкции (скопированные ниже) для использования специальной командной строки SDK 7.1: см. https://mail.python.org/pipermail/distutils-sig/2012-February/018300.html

Не обращайте внимания на этот вопрос. Кто-то здесь заметил этот пункт в меню: Пуск-> Все программы-> Microsoft Windows SDK v7.1 -> Windows SDK 7.1 Командная строка

Это запускает пакетное задание, которое, как представляется, создает рабочую среду для компилятора. Из этой подсказки вы можете ввести «setup.py build» или «setup.py install».

Я открыл командную строку Windows SDK 7.1 в соответствии с инструкциями и использовал ее для запуска easy_install в пакете python. И наконец, успех!


TLDR ;

  1. Установите Visual Studio Express 2010 (желательно без обновленных распространяемых компонентов или SQL-сервера).
  2. Установка Windows 7.1 SDK
  3. Instal SDK 7.1 SP1 и исправление файла заголовка VS2010 SP1 (этот шаг может не потребоваться).
  4. Manually create C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64\vcvars64.bat with content CALL setenv /x64
  5. Start->All Programs->Microsoft Windows SDK v7.1 ->Windows SDK 7.1 Command Prompt to open special x64 command prompt, which can then be used with python/easy_install/pip/etc (including those in virtual_envs).

I wanted to run pysph on Windows 10 under Python 2.7 and got vcvarsall.bat was not found (from distutils)

My solution was the following:

Install Microsoft Visual C++ for Python 2.7 (like @Michael suggested)

On Windows 10 it was installed into (my username is Andreas):

 C:\Users\Andreas\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0 

Set environment variable VS90COMNTOOLS to the installation path of Visual C++ for Python 2.7 (see above path).

If it still doesn't work, then modifiy in the module

 C:/Python27/lib/distutils 

the file msvc9compiler.py . Find in it the function find_vcvarsall and do following modification.

Replace the line:

 productdir = os.path.join(toolsdir, os.pardir, os.pardir, "VC") 

с

 productdir = os.path.join(toolsdir) 

This is where vcvarsall.bat resides in my case (check, where vcvarsall.bat is in your installation).

I encountered this issue when I tried to install numpy library on my python 3.5. The solution is to install VS2015. I had VS2008, 2012, 2013, none of which is compatible with python 3.5. Apparently newer version of python has dependency on newer versions of VS.

Also make sure C++ Common Tools are installed with Visual Studio.

введите описание изображения здесь

I tried many solutions but only one worked for me, the install of Microsoft Visual Studio 2008 Express C++.

I got this issue with a Python 2.7 module written in C (yEnc, which has other issues with MS VS). Note that Python 2.7 is built with MS VS 2008 version, not 2010!

Despite the fact it's free, it is quite hard to find since MS is promoting VS 2010. Still, the MSDN official very direct links are still working: check https://stackoverflow.com/a/15319069/2227298 for download links.

If you have mingw installed

 pip install --global-option build_ext --global-option --compiler=mingw32 packagename 

works, forcing pip to build using the mingw compiler instead of Microsoft's. See here https://github.com/pypa/pip/issues/18 for details (last post).

Is Microsoft Visual C++ Compiler for Python 2.7 at http://www.microsoft.com/en-us/download/details.aspx?id=44266 not a solution?

The easiest way to solve this in 2016 is to install Chocolatey and then the vcpython27 package. Open Powershell:

 > iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1')) > choco install python2 -y > choco install vcpython27 -y 

You can use easy_install instead of pip it works for me.

I don't know if it is too late, but I found Microsoft Visual C++ Compiler for Python 2.7 which reads

The typical error message you will receive if you need this compiler package is Unable to find vcvarsall.bat

Надеюсь это поможет!

  • Какие части виртуального пространства необходимо изменить, чтобы переместить его?
  • Простой не-веб-баг-трекер
  • Управление процессами Windows с использованием Python
  • Как установить libsvm для python под Windows 7?
  • Python - получить имена процессов, процессор, использование Mem и использование пикового ввода в окнах
  • Как нажать кнопку «Далее» в окне с помощью python
  • Как проверить, может ли файл быть создан в данной директории в MS XP / Vista?
  • 'pip setup.py bdist_wheel' больше не строит принудительные нечистые колеса
  •  
    Interesting Posts for Van-Lav
    Python - лучший язык программирования в мире.