Я попытался установить пакет 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
Обновить. Комментарии указывают на то, что инструкции здесь могут быть опасными. Рассмотрите возможность использования версии Visual С++ 2008 Express или специально созданного Microsoft Visual С++ Compiler for Python (подробнее) и НЕ, используя исходный ответ ниже. Исходное сообщение об ошибке означает, что требуемая версия Visual С++ не установлена.
Для установок Windows:
При запуске setup.py для установки пакетов Python 2.7 ищет установленную Visual Studio 2008. Вы можете обмануть Python для использования новой Visual Studio, установив правильный путь в переменной среды VS90COMNTOOLS
перед вызовом setup.py
.
Выполните следующую команду на основе установленной версии Visual Studio:
SET VS90COMNTOOLS=%VS100COMNTOOLS%
SET VS90COMNTOOLS=%VS110COMNTOOLS%
SET VS90COMNTOOLS=%VS120COMNTOOLS%
SET VS90COMNTOOLS=%VS140COMNTOOLS%
ПРЕДУПРЕЖДЕНИЕ. Как отмечено ниже, этот ответ вряд ли будет работать, если вы пытаетесь скомпилировать модули python.
Подробнее см. Создание lxml для Python 2.7 в Windows.
error: \Microsoft was unexpected at this time.
Я нашел решение. У меня была такая же проблема, и ошибка, установив "amara". У меня был установлен mingw32, но нужно было настроить distutils.
C:\programs\mingw\
c:\programs\MinGW\bin;
в PATHИзменить (создать, если не существует) файл distutils.cfg, расположенный в C:\Python26\Lib\distutils\distutils.cfg
, чтобы быть:
[build]
compiler=mingw32
Теперь запустите easy_install.exe amara
.
Убедитесь, что среда установлена, открыв новый cmd.exe
.
Вы можете установить скомпилированную версию из http://www.lfd.uci.edu/~gohlke/pythonlibs/
easy_install binary_installer_built_with_distutils.exe
в virtualenv, в соответствии с этим ответом .
Запустите python.exe
чтобы увидеть, с какой версией V C++ он был скомпилирован (пример показан ниже).
Важно использовать соответствующую версию компилятора Visual C++, с которой был скомпилирован Python, поскольку distilutils
get_build_version
предотвращает смешивание версий (согласно предупреждению Петра).
Используйте приведенную ниже таблицу [1], чтобы сопоставить внутреннюю версию V C++ с соответствующим выпуском 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)
MSC v.1911 -> Visual C++ 2017 (15.3)
MSC v.1912 -> Visual C++ 2017 (15.5)
MSC v.1913 -> Visual C++ 2017 (15.6)
MSC v.1914 -> Visual C++ 2017 (15.7)
MSC v.1915 -> Visual C++ 2017 (15.8)
MSC v.1916 -> Visual C++ 2017 (15.9)
Загрузите и установите соответствующую версию Visual Studio C++ из предыдущего шага.
Дополнительные примечания для конкретных версий V C++ перечислены ниже.
Загрузите только Visual Studio C++ 2008 Express Edition, только для битовых компиляторов 32-.
Для 64-разрядных компиляторов [2][3] загрузите Windows SDK для Windows 7 и.NET Framework 3.5 SP1.
- Снимите все, кроме
Developer Tools >> Visual C++ Compilers
чтобы сэкономить время и дисковое пространство от установки инструментов SDK, которые в противном случае вам не нужны.
Согласно Microsoft, если вы установили Visual Studio 2010 с пакетом обновления 1 (SP1), возможно, были удалены компиляторы и библиотеки для V C++.
В этом случае загрузите обновление компилятора Visual C++ 2010 SP1.
Если вам не нужна среда разработки Visual Studio, загрузите инструменты сборки Visual Studio C++ 2015.
Если вам не нужна среда разработки Visual Studio, загрузите инструменты сборки для Visual Studio 2017.
Предложение: Если у вас есть 32- и 64-битная установка Python, вы также можете использовать virtualenv для создания отдельных сред Python, чтобы вы могли использовать одну или другую за один раз, не перепутав свой путь, чтобы выбрать, какую версию Python использовать.
Согласно @srodriguex, вы можете пропустить загрузку пакетного файла вручную (шаги 4-6), вместо этого скопировав несколько пакетных файлов туда, где ищет Python, следуя этому ответу. Если это не сработает, вот следующие шаги, которые изначально работали для меня.
Откройте cmd.exe
Прежде чем пытаться установить что-либо, требующее расширения C, запустите следующий пакетный файл, чтобы загрузить среду компилятора V C++ в сеанс (т.е. Переменные среды, путь к компилятору и т.д.).
Выполнение:
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.
где ...
- это некоторая серия символов, то вам нужно убедиться, что в переменной пути нет никаких посторонних символов, таких как дополнительные кавычки или случайные символы. Пакетный файл не сможет обновить ваш путь к сеансу, если он не может понять его с самого начала.
Если все прошло хорошо, вы должны получить одно из следующих сообщений в зависимости от того, какую версию V C++ и какую команду вы выполняли:
Для инструментов компилятора битов 32-: Setting environment for using Microsoft Visual Studio 20xx x86 tools.
Для инструментов 64-битного компилятора: Setting environment for using Microsoft Visual Studio 20xx x64 tools.
Теперь запустите установку через python setup.py install
или pip install pkg-name
Надеюсь и скрестим пальцы, что планеты выровнены правильно для взаимодействия V C++.
Что происходит? Модули 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 на странице /questions/2057/does-python-have-a-packagemodule-management-system/23514#23514
Вам понадобится установить компилятор Microsoft, совместимый с компилятором, используемым для создания Python. Это означает, что вам нужна Visual С++ 2008 (или более новая, с некоторой настройкой).
Microsoft теперь поставляет компилятор и заголовки в комплекте, чтобы иметь возможность компилировать расширения Python на незабываемый URL:
Компилятор Microsoft Visual С++ для Python 2.7
Это относительно небольшой пакет; 85 МБ для загрузки, установки без прав администратора, не требуется перезагрузка. Имя немного вводит в заблуждение, компилятор будет работать для любой версии Python, первоначально скомпилированной с Visual С++ 2008, а не только с Python 2.7.
Если вы запустите интерактивную подсказку Python или распечатаете sys.version
, найдите строку версии MSC
; если это MSC v.1500
, вы можете использовать этот инструмент.
Из оригинального объявления в список distutils:
Microsoft выпустила пакет компилятора для Python 2.7, чтобы облегчить людям сбор и распространение своих модулей расширения C в Windows. Компилятор Microsoft Visual С++ для Python 2.7 (a.k.a. VC9) доступен из: http://aka.ms/vcpython27
Этот пакет содержит все инструменты и заголовки, необходимые для сборки модулей расширения C для 32-разрядных и 64-разрядных Python 2.7 (обратите внимание, что для некоторых модулей расширения требуются сторонние зависимости, такие как OpenSSL или libxml2, которые не включены). Другие версии Python, созданные с помощью Visual С++ 2008, также поддерживаются, поэтому "Python 2.7" - это просто реклама - он отлично работает с 2.6 и 3.2.
Обратите внимание, что вам необходимо установить setuptools
6.0 или новее (перечисленные в системных требованиях на странице загрузки). Проект, который вы устанавливаете, должен использовать setuptools.setup()
, а не distutils
или автоматическое обнаружение не будет работать.
Microsoft заявила, что хочет сохранить стабильный URL, чтобы автоматические скрипты могли легко ссылаться на нее.
setuptools
обновлен с помощью pip install setuptools --upgrade
.
setuptools
а не в distutils
- в конце концов, сборка модулей - это базовая функциональность, и в ней есть соответствующий код, но его старая версия. Похоже, что сопровождающие distutils
просто отказались от поддержки всех возможных вариантов MSSDK и свалили эту работу на своих коллег по setuptools
которые были более заинтересованы.
У меня просто была такая же проблема, поэтому я расскажу здесь свою историю, надеясь, что это поможет кому-то другому с теми же проблемами и сохранить их за пару часов, которые я только что провел:
У меня есть 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 setup.py build --compiler=mingw32
а затем python setup.py install
У меня есть python 2.73 и windows 7. Решение, которое сработало для меня, было:
C:\programs\mingw\bin;
Создан 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 году) с сочетанием этих факторов:
Компилятор Microsoft Visual С++ для Python 2.7 из http://aka.ms/vcpython27
Более старый пакет, в котором используется distutils.core.setup()
Попытка сделать python setup.py build
вместо использования pip
.
Если вы используете недавнюю версию pip, она заставит (monkeypatch) пакет использовать setuptools, даже если его setup.py
вызывает distutils. Однако, если вы не используете pip и вместо этого выполняете python setup.py build
, процесс сборки будет использовать distutils.core.setup()
, который не знает о месте установки компилятора.
Шаг 1: Откройте соответствующую командную строку Visual С++ 2008
Откройте меню "Пуск" или "Начало" и выполните поиск "32-разрядной командной строки Visual С++ 2008" (если ваш питон 32-разрядный) или "64-разрядная командная строка Visual С++ 2008" (если ваш питон 64 -немного). Запустить его. Командная строка должна указать Visual С++ 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, Feb 24 2015, 22:44:40) [MSC v.1600 64 бит (AMD64)] на win32
Решение 1, трудно: (прежде чем читать это, прочитайте первое решение 2 ниже) Наконец, это помогло мне:
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
или другой путь, в зависимости от того, где вы были установленыпосле этого я попытался 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/questions/23064899/compiler-problems-with-pip-during-numpy-install-under-windows-8-1-7-enterprise
pip install numpy
мой антивирус avast пытался вмешаться в процесс установки, но я быстро отключил егоПотребовалось очень много времени - несколько минут для компиляции numpy, я даже подумал, что произошла ошибка, но, наконец, все было в порядке.
Решение 2, просто:
(Я знаю, что этот подход уже упоминался в высоко оцененном ответе , но позвольте мне повторить, поскольку это действительно проще)
Пройдя всю эту работу, я понял, что лучшим способом для меня является использование уже предварительно скомпилированных двоичных файлов из http://www.lfd.uci.edu/~gohlke/pythonlibs/ в будущем. Очень мало шансов, что мне когда-нибудь понадобится пакет (или версия пакета), который этот сайт не содержит. Процесс установки также намного быстрее. Например, для установки numpy
:
numpy‑1.9.2+mkl‑cp34‑none‑win_amd64.whl
(если у вас есть Python 3.4 64-bit) с этого сайтаpip install numpy‑1.9.2+mkl‑cp34‑none‑win_amd64.whl
(или полный путь к файлу в зависимости от того, как открывается командная строка)Я хотел запустить pysph в Windows 10 под Python 2.7 и получил vcvarsall.bat не был найден (из distutils)
Мое решение было следующим:
Установите Microsoft Visual С++ для Python 2.7 (например, предложил Майкл)
В Windows 10 он был установлен (мое имя пользователя Andreas):
C:\Users\Andreas\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0
Задайте переменную среды VS90COMNTOOLS для пути установки Visual С++ для Python 2.7 (см. выше путь).
Если он все еще не работает, то modifiy в модуле
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 находится в вашей установке).
%userprofile%\Appdata\Local\Programs\Common
пуст для меня.
Я столкнулся с этой проблемой, когда попытался установить библиотеку numpy на моем python 3.5. Решение заключается в установке VS2015. У меня был VS2008, 2012, 2013, ни один из которых не совместим с python 3.5. По-видимому, более новая версия python зависит от более новых версий VS.
Также убедитесь, что С++ Common Tools установлены с Visual Studio.
Я попробовал все вышеперечисленные ответы и нашел, что все они не работают, возможно, я использовал 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
и вставьте файл. И тогда все должно быть хорошо.
У меня была эта проблема с использованием Python 3.4.1 на Windows 7 x64, и, к сожалению, у пакетов, которые мне были нужны, не было подходящих exe или колес, которые я мог бы использовать. Эта система требует нескольких "обходных решений", которые подробно описаны ниже (и TL;DR внизу).
Используя информацию в ответ Jaxrtech выше, я решил, что мне нужна Visual Studio С++ 2010 (sys.version return MSC v.1600), поэтому я установил Visual С++ 2010 Выразите из ссылки в его ответе, которая 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
. Я нашел решение по следующей ссылке: http://support.microsoft.com/kb/2717426. Короче говоря, если установлены более новые версии x86 и x64 Microsoft Visual С++ 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. И наконец, успех!
TL;DR;
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64\vcvars64.bat
с контентом CALL setenv /x64
Вы можете скачать бесплатную версию Visual С++ 2008 Express Edition из http://go.microsoft.com/?linkid=7729279, которая установит переменную окружения VS90COMNTOOLS во время установки и, следовательно, построит с совместимым компилятором.
Как упоминает в комментарии @PiotrDobrogost, его ответ на этот другой вопрос подробно рассказывает о том, почему Visual С++ 2008 - это правильная вещь для создания, но это может измениться по мере того, как сборка Python Windows переходит на более новые версии Visual Studio: Создание lxml для Python 2.7 в Windows
Самый простой способ решить это в 2016 году - установить Chocolatey, а затем пакет vcpython27
. Open Powershell:
> iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))
> choco install python2 -y
> choco install vcpython27 -y
Является ли Microsoft Visual С++ Compiler для Python 2.7 на http://www.microsoft.com/en-us/download/details.aspx?id=44266 не решением?
error: Microsoft Visual C++ 9.0 is required (Unable to find vcvarsall.bat). Get it from http://aka.ms/vcpython27
Если у вас установлен 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 С++.
Я получил эту проблему с модулем Python 2.7, написанным на C (yEnc, который имеет другие проблемы с MS VS). Обратите внимание, что Python 2.7 построен с версией MS VS 2008, а не с 2010!
Несмотря на то, что он бесплатный, его довольно сложно найти, поскольку MS продвигает VS 2010. Тем не менее, официальные очень прямые ссылки MSDN все еще работают: проверьте https://stackoverflow.com/questions/15318560/visual-c-2008-express-download-link-dead ссылки для скачивания.
Ниже шаги исправили эту проблему для меня, я пытался создать установку с расширением cython.
По какой-то причине distutils ожидает, что Файл vcvarsall.bat находится в директории VC, но VС++ для инструментов 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)
Вышеупомянутые шаги исправили проблему для меня.
У меня такая же проблема, и я решил ее в данный момент.
"Google" сказал мне, что мне нужно установить "Microsoft Visual С++ Compiler for Python 2.7". Я устанавливаю не только инструмент, но и Visual С++ 2008 Reditributable, но это не помогло. Затем я попытался установить Visual С++ 2008 Express Edition. И проблема ушла!
Просто попробуйте установить Visual С++ 2008 Express Edition!
Я не знаю, слишком ли поздно, но я нашел Microsoft Visual С++ Compiler для Python 2.7, который читает
Типичное сообщение об ошибке, которое вы получите, если вам нужно, чтобы этот пакет компилятора был Не удалось найти vcvarsall.bat
Надеюсь, это поможет!
вызов import setuptools
приведет к отключению патча обезьян для обеспечения совместимости с Visual Studio. Вызов vcvars32.bat
вручную настроит виртуальную среду и предотвратит другие распространенные ошибки, которые компилятор будет бросать. Файл находится в
"C:\Program Files (x86)\Microsoft Visual Студия\2017\Community\VC\Auxiliary\Сложение\vcvars32.bat"
для VS 2017.
setuptools
помогает, также в случае компиляции Cython .
Я пробовал все вышеперечисленные ответы, но не работал у меня.
Я использовал Windows 10 и установил Visual Studio 2010
В моем случае нужно добавить vcvars64.bat
в C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64
ниже: vcvars64.bat:
CALL "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64
Установите Microsoft SDK 7.1, если вы не установите, и перезапустите pip install dulwich
Полный список версий MS VC++ и варианты установки официально поддерживаются distutils
(и некоторые из них setuptools
) и как использовать их можно найти в
https://wiki.python.org/moin/WindowsCompilers
Он также указывает, какая версия VС++ требуется для официального выпуска версии Win32 Python. Обратите внимание, что MinGW официально не поддерживается (подробнее см. ниже).
Вкратце:
setuptools
, а не distutils
.Установите Visual Studio 2015 Community Edition из https://www.visualstudio.com, затем
для Python 3.4
set VS100COMNTOOLS=%VS140COMNTOOLS% && pip install XX
Перейдите сюда: http://docs.continuum.io/anaconda/install.html#windows-install
Есть инструкции по установке anaconda, который предоставит графический интерфейс и тихую установку большинства пакетов, которые, похоже, вызывают эту проблему из http://www.scipy.org/. Я знаю решение для 2.7 здесь https://www.microsoft.com/en-us/download/details.aspx?id=44266, но я не видел опции для Python 3.4. После загрузки и установки Anaconda вы сможете импортировать большинство пакетов, которые вам нужны, из scipy.
Надеюсь, это поможет некоторым людям. Принял мне 45 минут чистящих сообщений и сайтов.
EDIT: просто хочу отметить, что на странице GUI рядом с символами ОС есть ссылка Python34.
быстрое решение:
Если у вас python 3.4.x, решение просто установить VС++ 2010, поскольку он используется для компиляции.
https://www.visualstudio.com/en-us/downloads#d-2010-express
моя версия python MSC v.1600 32 бит (intel)] на win32
отлично работал на Windows8
У меня была та же ошибка (что я считаю глупым и не очень полезным вообще, как сообщения об ошибках) и продолжал испытывать проблемы, несмотря на наличие компилятора C.
Удивительно, что для меня работала просто модернизация pip и setuptools до самой последней версии. Надеюсь, это поможет кому-то другому.
Вы можете использовать easy_install вместо pip, который работает для меня.
error: Setup script exited with error: Unable to find vcvarsall.bat
С Python 3.4 зависимость зависит от Visual Studio 2010. Установка Visual С++ 2010 Express исправила проблему для меня.
Обманывать его с помощью VS 2008 или 2013, которые, как мне оказалось, не работали.
Ответ, заданный @monkey, является одним из правильных, но он неполный.
Если вы хотите использовать MinGW, вы должны выбрать C, С++ и другие инструменты разработки, предлагаемые во время MinGW процесс установки также получить "make.exe".
Вы также должны установить путь в make.exe в env.
Чтобы выполнить свой ответ, выполните следующие действия:
C:\Programs\MinGW\bin;C:\Programs\MinGW\msys\1.0\bin;
в PATHИзменить (создать, если он не существует), файл distutils.cfg
, расположенный в C:\Python26\Lib\distutils\distutils.cfg
, будет:
[build]
compiler=mingw32
Убедитесь, что переменные окружения установлены, открыв новый файл cmd.exe.
x86_64-w64-mingw32-gcc
и i686-w64-mingw32-gcc
. Эти исполняемые файлы, очевидно, такие же, как те, которые вы обычно получаете от Mingw (просто скомпилированные в среде Cygwin).
Если вы пытаетесь установить pyodbc на ящик Windows, в котором не установлена Visual Studio, другой вариант заключается в том, чтобы вручную установить pyobbc, используя двоичный дистрибутив.
Это особенно полезно, если у вас нет прав администратора на компьютере, с которым вы работаете, и пытаетесь настроить virtualenv.
Шаги:
[python installation directory or virtualenv]\Lib\site-packages
Я нахожу намного более простой способ сделать это. Просто загрузите пакеты с веб-сайта: http://www.lfd.uci.edu/~gohlke/pythonlibs ' Например: autopy3-0.51.1-cp36-cp36m-win32.whl(cp36 означает Python 3.6) Загрузить И установите по месту установки файла для установки файла
http://www.stickpeople.com/projects/python/win-psycopg/
Установка соответствующего файла из указанной выше ссылки исправила мою проблему.
Упоминание: Джейсон Эриксон [[email protected]]. Он довольно хорошо управляет этой страницей для пользователей Windows.
У меня была такая же ошибка, когда я пытался установить pandas в Windows 10. После поиска нескольких решений я закончил использование колеса.
Прежде всего, обновите pip до самой новой версии:
easy_install install -U pip
Во-вторых, установите колесо:
pip install wheel
В-третьих, загрузите файл whl для своего пакета и установите его:
pip install [xxx].whl
Пока я считаю, что колесо - лучший способ установить пакеты Python на окна.
Я выполнил инструкции http://springflex.blogspot.ru/2014/02/how-to-fix-valueerror-when-trying-to.html. но ничего не произошло. Затем я установил 2010 Visual Studio Express (http://www.microsoft.com/visualstudio/en-us/products/2010-editions/visual-cpp-express) в соответствии с рекомендацией http://blog.python.org/2012/05/recent-windows-changes-in-python-33.html это помогло мне
Лучший и исчерпывающий ответ на этот вопрос приведен здесь: https://blogs.msdn.microsoft.com/pythonengineering/2016/04/11/unable-to-find-vcvarsall-bat/
В большинстве случаев достаточно найти подходящий пакет.whl для требуемой зависимости python и установить его с помощью pip.
В последнем случае вам придется установить компилятор microsoft и установить пакет из исходного кода.
Я не видел никакого ответа, используя vswhere, который, я думаю, является правильным способом сделать это с Visual Studio 15.2.
Вот как я запускаю vsvars64.bat (я думаю, это похоже на vsvarsall)
def init_vsvars():
cprint("")
cprint_header("Initializing vs vars")
vswhere_path = r"%ProgramFiles(x86)%/Microsoft Visual Studio/Installer/vswhere.exe"
vswhere_path = path.expandvars(vswhere_path)
if not path.exists(vswhere_path):
raise EnvironmentError("vswhere.exe not found at: %s", vswhere_path)
vs_path = common.run_process(".", vswhere_path,
["-latest", "-property", "installationPath"])
vs_path = vs_path.rstrip()
vsvars_path = os.path.join(vs_path, "VC/Auxiliary/Build/vcvars64.bat")
# common.run_process(".", vsvars_path, [])
os.system('"%s"' % vsvars_path)
run_process делает кучу вещей, но в основном сводится к следующему:
output = ""
process = subprocess.Popen(
commandline,
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT,
universal_newlines=True)
for stdout_line in iter(process.stdout.readline, ""):
cprint(stdout_line)
output += stdout_line
process.stdout.close()
return_code = process.wait()
return output