Ошибка: не удается найти 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

43 ответа

Обновление: Комментарии указывают, что инструкции здесь могут быть опасными. Подумайте об использовании выпуска 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.

Подробности смотрите в разделе Сборка lxml для Python 2.7 в Windows.

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

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

    [build]
    compiler=mingw32
    
  5. Теперь беги easy_install.exe amara,

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

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

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

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

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

    • Желтый (вверху) - это 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 SP1.

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

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

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

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

    Если вам не нужна среда разработки Visual Studio, загрузите инструменты сборки Visual Studio C++ 2015.

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

    Если вам не нужна среда разработки Visual Studio, загрузите инструменты сборки для Visual Studio 2017.

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

Согласно @srodriguex, вы можете пропустить загрузку пакетного файла вручную (Шаги 4-6), вместо этого скопировав несколько пакетных файлов туда, где ищет 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++ из исходного кода. Из коробки Пип нагло предположит, что у вас установлен компилятор Microsoft Visual C++. Если у вас его нет, вы увидите загадочное сообщение об ошибке "Ошибка: невозможно найти vcvarsall.bat".

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

Самое простое решение - использовать установщики Windows (.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 на /questions/40041849/est-li-v-python-sistema-upravleniya-paketami-modulyami/40041854#40041854

Вам нужно будет установить компилятор 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

Легко решается после поиска ошибки, указав 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" (если ваш Python 32-битный) или "64-битная командная строка Visual C++ 2008" (если ваш Python 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

Я потратил почти 2 дня, чтобы понять, как решить эту проблему в моей 64-битной версии python 3.4: Python 3.4.3 (v3.4.3:9b73f1c3e601, 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 (SP1) вместе с обновлением компилятора 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 за это /questions/39970554/problemyi-kompilyatora-s-pip-vo-vremya-prostoj-ustanovki-pod-windows-81-7-enterprise-i-7-home-editions/39970570#39970570

  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 (или полный путь к файлу в зависимости от того, как открывается командная строка)

Я перепробовал все приведенные выше ответы и обнаружил, что все они не работают. Возможно, я использовал 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

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

Используйте эту ссылку, чтобы загрузить и установить Visual C++ 2015 Build Tools. Он автоматически загрузитсяvisualcppbuildtools_full.exeи установите Visual C++ 14.0 без фактической установки Visual Studio. После завершения установки повторите попытку установки pip, и вы больше не получите сообщение об ошибке.

Я тестировал его на следующих платформах и версиях:

Python 3.6 on Windows 7 64-bit
Python 3.7 on Windows Server 2016 (64-bit system)
Python 3.8 on Windows 10 64-bit

Я хотел запустить pysph на Windows 10 под Python 2.7 и получил vcvarsall.bat не был найден (из distutils)

Мое решение было следующее:

Установите Microsoft Visual C++ для Python 2.7 (как предложил @Michael)

В Windows 10 он был установлен в (мое имя пользователя Andreas):

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

Задайте для переменной среды VS90COMNTOOLS путь установки Visual C++ для Python 2.7 (см. Путь выше).

Если это все еще не работает, тогда модифицируйте в модуле

C:/Python27/lib/distutils

файл msvc9compiler.py. Найдите в нем функцию find_vcvarsall и выполните следующую модификацию.

Заменить строку:

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

с

productdir = os.path.join(toolsdir)

Это где vcvarsall.bat находится в моем случае (проверьте, где vcvarsall.bat находится в вашей установке).

Я столкнулся с этой проблемой, когда пытался установить библиотеку numpy на моем python 3.5. Решением является установка VS2015. У меня была VS2008, 2012, 2013, ни одна из которых не совместима с python 3.5. Очевидно, что более новая версия python зависит от более новых версий VS.

Также убедитесь, что C++ Common Tools установлены вместе с Visual Studio.

У меня была эта проблема с использованием 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'], С этой ошибкой связаны и другие вопросы, связанные с переполнением стека, например ошибки при сборке / установке модуля 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, Я нашел решение по следующей ссылке: http://support.microsoft.com/kb/2717426. Короче говоря, если установлены более новые версии распространяемого пакета Microsoft Visual C++ 2010 для архитектуры x86 и x64, они конфликтуют с теми, что есть в установщике 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 Следуя инструкциям, я уже установил 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" со следующим (вам нужно будет работать от имени администратора):

ЗВОНОК setenv /x64

Мой пакет python все еще не установлен (не может вспомнить ошибку). Затем я нашел несколько инструкций (скопировано ниже) для использования специальной командной строки SDK 7.1, см.: https://mail.python.org/pipermail/distutils-sig/2012-February/018300.html февраля/ 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. Вручную создать C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64\vcvars64.bat с содержанием CALL setenv /x64
  5. Пуск-> Все программы->Microsoft Windows SDK v7.1 ->Windows SDK 7.1. Командная строка, чтобы открыть специальную командную строку x64, которую затем можно использовать с python/easy_install/pip/etc (в том числе в virtual_envs).

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

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

Призвание import setuptools установит патчи distutils для принудительной совместимости с Visual Studio. призвание vcvars32.bat вручную настроит виртуальную среду и предотвратит другие распространенные ошибки, которые выдает компилятор. Файл находится по адресу

"C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars32.bat"

для VS 2017

Ниже описана эта проблема, я пытался создать установку с расширением Cython.

  1. Установите Microsoft Visual C++ компилятор для Python 2.7
  2. Расположение установки по умолчанию: @ C:\Users\PC-user\AppData\Local\Programs\Common\Microsoft\Visual C++ для Python. Это может на самом деле решить проблему, протестируйте один раз, прежде чем продолжить.
  3. Если это не удается, проверьте, где в VC++ для python находится файл vcvarsall.bat.
  4. Откройте файл msvc9compiler.py пакета distutils в блокноте.
  5. В моем окне это была функция @ C:\Anaconda2\Lib\distutils\msvc9compiler.py find_vcvarsall в этом файле, определяющая версию VC путем распечатки аргумента версии. Для Python 2.7 это будет 9.0
  6. Теперь создайте переменную среды VS90COMNTOOLS, указывающую на C: \ Users \ PC-user \ AppData \ Local \ Programs \ Common \ Microsoft \ Visual C++ для Python\9.0\VC\bin
  7. По некоторым причинам distutils ожидает, что файл vcvarsall.bat находится в каталоге VC, но VC++ для инструментов python содержит его в корне из 9.0. Чтобы исправить это, удалите "VC" из path.join (примерно в строке 247)

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

Вышеуказанные шаги решили проблему для меня.

Самый простой способ решить эту проблему в 2016 году - это установить Chocolatey, а затем vcpython27 пакет. Открыть Powershell:

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

Является ли компилятор Microsoft Visual C++ для Python 2.7 по адресу http://www.microsoft.com/en-us/download/details.aspx?id=44266 не решением?

Если у вас установлен Mingw

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

работает, заставляя pip собирать, используя компилятор mingw вместо Microsoft. Смотрите здесь https://github.com/pypa/pip/issues/18 для деталей (последнее сообщение).

Я перепробовал много решений, но у меня работало только одно - установка Microsoft Visual Studio 2008 Express C++.

Я получил эту проблему с модулем Python 2.7, написанным на C (yEnc, у которого есть другие проблемы с MS VS). Обратите внимание, что Python 2.7 построен с версией MS VS 2008, а не 2010!

Несмотря на то, что он бесплатный, найти его довольно сложно, поскольку MS продвигает VS 2010. Тем не менее, официальные очень прямые ссылки MSDN все еще работают: проверьте /questions/20969618/visual-c-2008-express-ssyilka-dlya-skachivaniya-mertvaya/20969628#20969628 ссылки для скачивания.

Я не знаю, слишком ли поздно, но я нашел компилятор Microsoft Visual C++ для Python 2.7, который читает

Типичное сообщение об ошибке, которое вы получите, если вам нужен этот пакет компилятора: Невозможно найти vcvarsall.bat

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

Я получил ту же проблему и решил ее в данный момент.

"Google" сказал мне, что мне нужно установить "Microsoft Visual C++ Compiler для Python 2.7". Я устанавливаю не только инструмент, но и Visual C++ 2008 Reditributable, но это не помогло. Затем я попытался установить Visual C++ 2008 Express Edition. И проблема ушла!

Просто попробуйте установить Visual C++ 2008 Express Edition!

Полный список версий MS V С++ и вариантов установки, официально поддерживаемыхdistutils (а некоторые setuptools) и как их использовать можно найти на

https://wiki.python.org/moin/WindowsCompilers

Он также указывает, какая версия VC++ требуется для какой официальной версии Win32 Python. Обратите внимание, что MinGW официально не поддерживается (подробности см. Ниже).

Вкратце:

  • Для каждого выпуска есть определенный выпуск Visual Studio, который работает из коробки.
  • Для автономных SDK обычно требуется запустить установку из приглашения SDK (= установить переменные среды).
    • Для некоторых это требование может быть снято путем однократной настройки, которая не имеет побочных эффектов.
  • Некоторые необычные выпуски VC++ поддерживаются setuptools и не distutils,
  • Говорят, чтоMinGW работает, но только для x86. https://bugs.python.org/issue4709 говорит, что проблемы с его поддержкой лежат в самом MinGW, и даже x86 обязательно будет иметь проблемы с Python 3.5.

В Python 3.4 зависимость от Visual Studio 2010. Установка Visual C++ 2010 Express устранила проблему для меня.

Обманывая это с использованием установок VS 2008 или 2013, которые, как мне показалось, не работали.

Установите Visual Studio 2015 Community Edition со https://www.visualstudio.com/, затем

для Python 3.4

set VS100COMNTOOLS=%VS140COMNTOOLS% && pip install XX

Ответ, данный @monkey, является одним из правильных, но он неполный.

Если вы хотите использовать MinGW, вам нужно выбрать C, C++, а также другие инструменты разработки, предложенные в процессе установки MinGW, чтобы также получить "make.exe".

У вас также должен быть установлен путь к make.exe в env.

Чтобы завершить свой ответ, вот шаги:

  1. Добавьте каталог bin mingw32 в переменные вашей среды
  2. присоединять C:\Programs\MinGW\bin;C:\Programs\MinGW\msys\1.0\bin; в путь
  3. Изменить (создать, если он не существует) distutils.cfg файл находится в C:\Python26\Lib\distutils\distutils.cfg быть:

    [build]
    compiler=mingw32
    

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

Другие вопросы по тегам