2010-04-19 9 views
57

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

cannot find vcvarsall.bat 

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

+2

Было ли какое-либо из этих решений работать для вас? Не забудьте принять его! –

+0

Запуск команд python или pip install из командной строки Visual Studio Tools (в вашем стартовом меню) обычно исправляет проблемы с компиляцией любого расширения python –

ответ

3

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

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

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

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

Для получения более постоянного эффекта, add it in the computer system path settings.

+2

Привет, Спасибо за ввод. Что на самом деле работало, так это удалить версию 2010 года и установить версию 2008 года. изменение пути не сработало. еще раз спасибо – Ariel

+0

Приятно слышать, что у вас это работает. Я уверен, что в будущем гуру объяснит, как скомпилировать Python и его модули с VS 2010. –

+7

Python 2.6, 2.7, 3.0, 3.1 всегда будет требовать VS2008, потому что это содержит правильную версию среды выполнения C, с которой они связаны к. Если вы попытаетесь связать DLL-библиотеки python со средой выполнения C, которая поставляется с VS2010, это не сработает. –

14

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

VS90COMNTOOLS 

Например:

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

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

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

+0

Да, в то время как проблема с дорогой выше, казалось, была вероятной, она решила проблему без перезагрузки. Nice one –

+1

+1 для упоминания «запуск новой командной строки после установки». Это было причиной моей проблемы :) –

5

это работало для меня (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\ 
+0

Это отлично подойдило мне. Благодаря! – Paul

42

Кажется, что Python смотрит ex для 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% 
+4

Официальная сборка Python для Windows построена с использованием Visual Studio 2008, и, глядя на источники, она явно ищет VS90COMNTOOLS. VS10COMNTOOLS создается установщиком визуальной студии, поэтому не стесняйтесь решать проблемы согласованности с Microsoft :) – CadentOrange

+1

Странно, мой установщик Visual Studio 2010 создал VS100COMNTOOLS – Dunc

+2

Как бы то ни было, это не проблема. Это не переменная среды, которую ищет Python, поэтому вам нужно создать соответствующую переменную среды (например, VS90COMNTOOLS) и указать ее в общую папку инструментов VS 2010. – CadentOrange

4

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

23

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

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

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

    pip install --upgrade setuptools

  2. Теперь попробуйте и установить пакет снова:

    pip install [yourpackagename]

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

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

    pip install [yourpackagename]

И там вы идете. Это должно сработать для вас.

+6

'pip install --upgrade setuptools' также разрешил мои проблемы (не удалось установить несколько пакетов в jetbrains pycharm), побежал из« C: \ Python27 \ Scripts »в Windows 7 – ippi

+2

Это гораздо более простое решение, чем у меня как предполагалось, в другом месте - не возиться с визуальной студией. Благодарю. –

+0

не сделал трюк для меня ... такой же ошибка. У меня VS2010 и VS2013 установлены – IceFire

1

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

я мог бы решить эту проблему так:

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

Моей конфигурация Visual Studio 2013 (12,0) и Python 3.4.2

9

В , если вы по-прежнему получаете эту ошибку в заблуждении, вины python default setuptools этот PIP использует.

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

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

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

+1

Я согласен с тем, что Python по-прежнему не поддерживает сборку расширений C/C++, хотя для этого требуется множество расширений. – gaborous

+0

Это то же самое решение, которое я написал! – alfonso

+0

И вы постепенно улучшали свои ответы. Вы хотите, чтобы я удалил свой ответ? –

6

Эта критическая ошибка означает, что у вас нет компилятора C. There was a discussion to propose a more explanative error (который is continued here, зарегистрируйтесь и прокомментируйте, если вам это нравится!), Но в настоящее время он по-прежнему не реализован.

Чтобы устранить эту проблему, вы можете либо установить Visual Studio 2008 SDK, который будет принимать около GB, или вы можете установить очень маленький 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.

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

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

/EDIT: Кроме того, если у вас есть другая версия Python, вы не можете использовать Microsoft Visual C++ для 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

+0

Привет, gaborous, не могли бы вы предоставить немного более подробно на шаге 2, пожалуйста? Где я могу найти эту командную строку? Спасибо – Giswok

+1

@ Giswok Это установлено с помощью «Microsoft Visual C++ Compiler for Python», вы должны найти ярлык в своем стартовом меню. – gaborous

+0

Спасибо @gaborous, я не нашел его сначала, потому что он не появился в стартовой панели поиска meniu! Кажется, что это привело к некоторому прогрессу; Теперь я получаю «фатальную ошибку LNK1117: синтаксическая ошибка в опции \« МАНИФЕСТ: EMBED, ID = 2 ». Не уверен, что это потому, что оно не поддерживается distutils или чем-то несвязанным. Я буду продолжать пытаться. – Giswok

1

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

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

  2. Найдите каталог Устанавливая, это что-то вроде "C: \ Users \ имя_пользователя \ AppData \ Local \ Programs \ Common \ Microsoft \ Visual C++ для Python"

  3. Изменить имя каталога «C: \ Пользователи \ USER_NAME \ AppData \ Local \ Programs \ Common \ Microsoft \ Visual C++ для Python \ 9.0" к "C: \ Users \ имя_пользователя \ AppData \ Local \ Programs \ Common \ Microsoft \ Visual C++ для Python \ VC"

  4. Добавить новую переменную окружения "VS90COMNTOOLS" и его значение «C: \ Users \ имя_пользователя \ AppData \ Local \ Programs \ Common \ Microsoft \ Visual C++ для Python \ VC \ VC»

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

1

В случае, если кто-либо приходит сюда для получения ответа на 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/

3

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

+0

Чтобы уточнить, вам нужно найти его в раскрывающемся списке мастера установки. .bat-файла нет! – josh

2

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

редактировать свои $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"" 

И убедитесь, что ваш визуальный каталог студии бен в вашем пути.

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

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

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

pip install flask-user 
0

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

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

Reference: https://bugs.python.org/issue23246: Посмотрите примерно на полпути вниз по цитате из Стива приданого:

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

3

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

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

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

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

VS100COMNTOOLS

VS110COMNTOOLS

VS120COMNTOOLS

VS140COMNTOOLS

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

«C: \ Program Files (x86) \ Microsoft Visual S tudio 10.0 \ Common7 \ Tools "(если установлена ​​Visual Studio 2008) или « C: \ Program Files (x86) \ Microsoft Visual Studio 11.0 \ Common7 \ Tools »(если установлена ​​визуальная студия 2010) или « C: \ Program Files (x86) \ Microsoft Visual Studio 12.0 \ Common7 \ Tools "(если установлена ​​visual studio 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"

Это все.

+1

vcvarsall.bat x86_amd64 Этот файл не существует, Visual Studio 2015 i m имеет, остальное урское объяснение было превосходным. ПОМОГИТЕ – ErrorrrDetector

Смежные вопросы