Не удается найти vcvarsall.bat при запуске Python script

Я работаю над Vista и с помощью Python 2.6.4. Я использую программное обеспечение, которое использует Python script, но натолкнулось на сообщение:

cannot find vcvarsall.bat

Итак, я установил visual С++ 2010. Тем не менее файл не найден - хотя, он есть. Моя догадка (очень необразованная...) заключается в том, что где-то путь неправильный, потому что у меня также есть старая визуальная 2008 (довольно пустая) папка. Я не знаю, где внести изменения для нового пути. Я могу что-то изменить в реестре или в script? Или где-то еще?

Ответ 1

Кажется, что Python явно ищет Visual Studio 2008. Я столкнулся с этой проблемой, когда он не смог найти vcvarsall.bat, даже если он был на пути.

Оказывается, Visual Studio 2010 создает следующую переменную среды:

SET VS100COMNTOOLS=C:\Program Files\Microsoft Visual Studio 10.0\Common7\Tools\

Исправление состоит в том, чтобы создать переменную с именем VS90COMNTOOLS и указать ее в общую папку инструментов Visual Studio 2010, например

SET VS90COMNTOOLS=C:\Program Files\Microsoft Visual Studio 10.0\Common7\Tools\

Это исправлено для меня, и теперь я могу создавать пакеты с использованием компилятора Visual Studio 2010.

Вы также можете установить переменную окружения VS90 для указания на переменную окружения VS100 с помощью следующей команды:

SET VS90COMNTOOLS=%VS100COMNTOOLS%

Ответ 2

Здесь простое решение. Я использую Python 2.7 и Windows 7.

То, что вы пытаетесь установить, требует компилятор C/С++, но Python его не находит. Многие пакеты Python на самом деле написаны на C/С++ и их необходимо скомпилировать. vcvarsall.bat необходим для компиляции С++, и pip предполагает, что ваш компьютер может это сделать.

  • Попробуйте сначала обновить setuptools, потому что v6.0 и выше автоматически обнаружат компилятор. Возможно, у вас уже есть компилятор, но Python его не может найти. Откройте командную строку и введите:

    pip install --upgrade setuptools

  • Теперь попробуйте еще раз установить пакет:

    pip install [yourpackagename]

  • Если это не сработало, значит, у вас нет компилятора, поэтому вам нужно установить его:
    http://www.microsoft.com/en-us/download/details.aspx?id=44266

  • Теперь попробуйте еще раз:

    pip install [yourpackagename]

И ты туда. Он должен работать для вас.

Ответ 3

Решение этой проблемы заключается в установке следующей переменной среды:

VS90COMNTOOLS

Например:

set VS90COMNTOOLS=C:\Program Files\Microsoft Visual Studio 9.0\Common7\Tools

Эта ошибка может быть вызвана не перезагрузкой после установки Visual Studios, либо без запуска новой командной строки после установки.

Также версия Visual Studios, которую вы можете использовать для компиляции расширений, может зависеть от версии python, для которой вы строите.

Ответ 4

В 2015, если вы все еще получаете эту запутанную ошибку, запустите python default setuptools, который использует PIP.

  • Загрузите и установите минимальный компилятор Microsoft Visual С++ для Python 2.7, необходимый для компиляции модулей python 2.7 из http://www.microsoft.com/en-in/download/details.aspx?id=44266
  • Обновите настройки setuptools - pip install -U setuptools
  • Установите любой пакет python, который вам нужен, для компиляции C. pip install blahblah

Он будет работать нормально.

UPDATE: он не будет работать нормально для всех библиотек. Я все еще получаю некоторую ошибку с несколькими модулями, которые требуют lib-headers. Единственное, что работает безупречно, - это платформа Linux

Ответ 5

Эта критическая ошибка означает, что у вас нет компилятора C. Было обсуждение, чтобы предложить более объяснительную ошибку (здесь здесь, зарегистрируйтесь и прокомментируйте, если вам это нравится!), но в настоящее время он все еще не реализован.

Чтобы исправить эту проблему, вы можете либо установить Visual Studio 2008 SDK, который будет занимать около ГБ, либо вы можете установить очень маленький VCForPython27.msi, но в настоящее время не поддерживается поддержкой distutils, здесь процедура:

1) install Microsoft Visual C++ Compiler for Python 2.7 from
http://www.microsoft.com/en-us/download/details.aspx?id=44266
2) Enter MSVC for Python command prompt
3) SET DISTUTILS_USE_SDK=1
4) SET MSSdk=1
5) you can then build your C extensions: python.exe setup.py ...

Шаги с 2 по 4 должны воспроизводиться каждый раз перед созданием расширений C. Это из-за проблемы с VCForPython27.msi, которые устанавливают файлы заголовков и vcvarsall.bat в папках другого макета, чем SDK VS2008, и таким образом путают обнаружение компилятора distutils. Это будет исправлено в setuptools в Python 2.7.10.

Отчет об ошибках и обходной путь Грегори Сорка: http://bugs.python.org/issue23246

Дополнительная информация и обходной путь для использования магии %% cython внутри IPython: https://github.com/cython/cython/wiki/CythonExtensionsOnWindows

/EDIT: Кроме того, если у вас есть другая версия Python, вы не можете использовать Microsoft Visual С++ для Python 2.7, который является своего рода мини-компилятором, специально разработанным Microsoft для Python 2.7. В этом случае вам необходимо установить SDK Visual Studio, который соответствует вашей версии Python, или Windows SDK с правильной версией .NET Framework. См. Здесь для получения дополнительной информации: https://github.com/cython/cython/wiki/CythonExtensionsOnWindows#using-windows-sdk-cc-compiler-works-for-all-python-versions

Ответ 6

это сработало для меня (python 2.6):

установлен free ms visual studio 2008 из http://www.microsoft.com/visualstudio/en-us/products/2008-editions/express

скопировано vcvarsall.bat от "C:\Program Files\Microsoft Visual Studio 9.0\VC>" до "C:\Program Files\Microsoft Visual Studio 9.0\Common7\Tools\"

установщик уже установил эту переменную среды:

VS90COMNTOOLS=C:\Program Files\Microsoft Visual Studio 9.0\Common7\Tools\

Ответ 7

Похоже, что MS выпустила точный пакет, необходимый здесь. BurnBit здесь. Установите его, а затем установите для него ключи реестра этот ответ, чтобы указать на C:\Users\username\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0

Ответ 8

Установка Visual С++ - хороший первый шаг, хотя я не мог точно сказать, будет ли работать версия 2010 года. В любом случае попробуйте.

Найдите vcvarsall.bat в установочном каталоге Visual С++ (для Visual Studio 2010 в ProgramFiles\Microsoft Visual Studio 10.0\VC). Затем добавьте этот каталог в системный путь. Если вы делаете это в командной строке, вы можете попробовать:

path %path%;c:\path\to\vs2010\bin

затем повторите попытку, чтобы запустить все, что вы пытались запустить.

Для получения более постоянного эффекта добавить его в настройки пути к компьютерной системе.

Ответ 9

Если вы установили Visual Studio 2015 с помощью быстрой установки, vcvarsall.bat не существует. Но вы можете перейти к программам и настройкам и изменить установку, чтобы установить инструменты С++, тогда появится vcvarsall.bat.

Ответ 10

ЭТО ОТКАЗЫВАЕТСЯ ОТ ОТВЕТОВ ДЛЯ ПОЛЬЗОВАТЕЛЕЙ WINDOWS - ОЧЕНЬ ПРОСТОЕ РЕШЕНИЕ.

Как уже упоминалось, проблема в том, что python/cython и т.д. пытаются найти тот же компилятор, из которого они были созданы, но этот компилятор не существует на компьютере. В большинстве случаев этот компилятор является версией visual studio (2008, 2010 или 2013), но либо такой компилятор не установлен, либо установлена ​​более новая версия, и система не позволяет установить более старую версию. Итак, решение прост:

1) посмотрите C:\Program Files (x86) и посмотрите, есть ли установленная версия визуальной студии Microsoft, и если она новее, чем версия, из которой был построен Python. Если нет, установите (/update) версию, из которой был создан Python (см. Предыдущие ответы), или даже новейшую версию и выполните следующий шаг.

2) Если новая версия Microsoft Visual Studio уже установлена, мы должны сделать Python/cython и т.д., полагаем, что это версия, из которой она была построена. И это очень просто: перейдите к переменным системной среды и создайте следующие переменные, если они не существуют:

VS100COMNTOOLS

VS110COMNTOOLS

VS120COMNTOOLS

VS140COMNTOOLS

И установите для поля этих переменных значение

"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\Tools" (если установлена ​​Visual Studio 2008), или "C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\Tools" (если установлена ​​visual studio 2010) или "C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools" (если установлена ​​визуальная студия 2013) или "C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Tools" (если установлена ​​visual studio 2015).

Это решение работает для 32-разрядных версий python. Он также может работать для 64-битной версии, но я не тестировал ее; скорее всего, для 64-битных версий должны быть выполнены следующие дополнительные шаги:

3) добавьте в переменную среды% PATH% путь "C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC" (измените номер версии визуальной студии в соответствии с вашей версией).

4) из командной строки запустите "vcvarsall.bat x86_amd64"

Что все.

Ответ 11

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

Измените свой $PythonPath/Lib/distutils/_msvccompiler.py

Найти def _find_vcvarsall(plat_spec): Добавьте в качестве следующей строки, добавьте

    PathToVC=r"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat"
    return PathToVC, r""

И затем убедитесь, что ваш каталог bin в visual studio находится на вашем пути.

Если это не сработает, есть другие файлы, которые вам могут понадобиться для редактирования, включая:

  • $PYTHONPATH/Lib/Distutils/msvc9compiler.py
  • $PYTHONPATH/Lib/сайт-пакеты/Setuptools/msvc9_support.py

Ответ 12

Я попробовал решение здесь, чтобы установить переменную среды через командную строку, но это не сработало. Я сделал это как из обычной командной строки, так и из командной строки Visual Studio Developer.

Я мог бы решить эту проблему следующим образом:

  • перейдите на экран переменных среды и создайте новую переменную VS100COMNTOOLS и дайте ссылку на мою установочную папку Visual Studio. C:\Program Files\Microsoft Visual Studio 12.0\Common7\Tools\
  • Перейдите в указанную выше папку. Внутри этой папки находится файл vsvars32.bat. Скопируйте этот файл и переименуйте его в vsvarsall.bat

Моя конфигурация - это Visual Studio 2013 (12.0) и Python 3.4.2

Ответ 13

Обратите внимание, что существует очень простое решение.

  • Загрузите программное обеспечение из http://www.microsoft.com/en-us/download/details.aspx?id=44266 и установите его.

  • Найти каталог установки, это что-то вроде "C:\Users\USER_NAME\AppData\Local\Programs\Common\Microsoft\Visual С++ для Python"

  • Измените имя каталога "C:\Users\USER_NAME\AppData\Local\Programs\Common\Microsoft\Visual С++ для Python\9.0" в "C:\Users\USER_NAME\AppData\Local\Programs\Common\Microsoft\Visual С++ для Python\VC"

  • Добавьте новую переменную среды "VS90COMNTOOLS" и ее значение: "C:\Users\USER_NAME\AppData\Local\Programs\Common\Microsoft\Visual С++ для Python\VC\VC"

Теперь все в порядке.

Ответ 14

В случае, если кто-то приходит сюда искать ответ для Python 3.5; вам нужна Visual Studio 2015.

Получить Visual Studio 2015 Community здесь: https://www.visualstudio.com/en-us/downloads/visual-studio-2015-downloads-vs.aspx, это сработало для меня без дальнейших шагов.

Большое спасибо Ионелю, видимо, единственному месту в Интернете, чтобы найти эту информацию! http://blog.ionelmc.ro/2014/12/21/compiling-python-extensions-on-windows/

Ответ 16

После установки Visual Studio Community 2015 Edition на Windows 10 64 бит. Эта ошибка не исчезла. Затем я устанавливаю Microsoft Visual С++ Compiler для Python 2.7. Поскольку для этого требуется файл vcvarsall.bat. Этот файл отсутствует в Visual Studio Community 2015, но он был в Microsoft Visual С++ Compiler для Python 2.7. Я также добавил свой путь в переменные среды, но он также не работал. Затем я удаляю python 3.4.2 и удаляю все папки python и устанавливаю python 2.7. Наконец, я запускаю pip с помощью powershell, и я смог установить свой необходимый пакет, то есть flask-user, используя.

pip install flask-user

Ответ 17

В окне есть путающий кейс для этого окна. Если вы следуете рекомендациям по установке окон 2007 года и по-прежнему получаете эту ошибку при непосредственном выполнении python setup.py install, может быть, что setup.py использует старую версию инструментов настройки.

В частности, код, который указывает окна в нужное место для установленного Windows компилятора, находится в методе __init__ библиотеки setuptools, что означает, что вы должны в своем setup.py использовать модуль setuptools. Некоторые старые методы setup.py вызывают непосредственно из distutils.core. Если это так, то setup.py никогда не найдет установленный Windows компилятор. Это можно устранить, просто указав import setuptools в качестве первой строки файла setup.py.

Ссылка: https://bugs.python.org/issue23246: посмотрите на половину пути для цитаты из steve dower:

У Setuptools есть код для поиска пакета компилятора. Мы намеренно кладем его туда, а не в distutils, чтобы удостовериться, что больше людей это получит. Вероятно, я должен добавить дополнительную проверку в 2.7.10, но немедленное исправление заключается в том, чтобы импортировать setuptools.

Ответ 18

В Visual Studio Установщик

В разделе " Workloads выберите * Universal Windows Platform development * Desktop development with C++

Исправляет проблему