Не удалось найти vcvarsall.bat на python 3.4. Установить reportLab [duplicate]

Я попытался установить пакет 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
817
задан Steven Vascellaro 23 October 2017 в 16:32
поделиться

30 ответов

Вы можете использовать easy_install вместо pip, он работает для меня.

2
ответ дан Abdul Majeed 16 August 2018 в 00:49
поделиться
  • 1
    Такая же ошибка error: Setup script exited with error: Unable to find vcvarsall.bat – Stephan Schielke 30 October 2015 в 17:16

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

set VS90COMNTOOLS=%VS80COMNTOOLS%

, а затем:

python.exe setup.py install
9
ответ дан Ashwini Chaudhary 16 August 2018 в 00:49
поделиться
  • 1
    Нет, вы правы, я не уверен, что произошло, я удалю исходный комментарий. – Dave Challis 15 April 2013 в 11:41
  • 2
    Очень полезно!! В моем случае я сделал «set VS90COMNTOOLS =% VS110COMNTOOLS%». – jrvidotti 8 November 2013 в 17:55
  • 3
    Где я набираю эти команды? командной строки? – Exzile 9 July 2014 в 14:03
  • 4
    @Exzile: да, вы вводите эти команды в тот же сеанс командной строки – Stefano Fenu 4 September 2014 в 15:48

У меня была такая же ошибка (что я считаю глупым и не очень полезным вообще, как сообщения об ошибках) и продолжал испытывать проблемы, несмотря на наличие компилятора C.

Удивительно, что в итоге я работал для меня, просто обновляя pip и setuptools до самой последней версии. Надеюсь, это поможет кому-то еще.

1
ответ дан cbrendanprice 16 August 2018 в 00:49
поделиться

Я хотел запустить 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 (см. Выше путь).

Если он все еще не работает, то 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 находится в вашей установке).

6
ответ дан chiefenne 16 August 2018 в 00:49
поделиться
  • 1
    Довольно интересно %userprofile%\Appdata\Local\Programs\Common пусто для меня. – Bryce Guinta 18 November 2016 в 06:01
  • 2
    Даже после установки Microsoft Visual C ++ для Python 2.7? – chiefenne 18 November 2016 в 16:17

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

> iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))
> choco install python2 -y
> choco install vcpython27 -y
3
ответ дан Chris S 16 August 2018 в 00:49
поделиться

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

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

  1. Компилятор Microsoft Visual C ++ для Python 2.7 из http://aka.ms/vcpython27
  2. Более старый пакет, в котором используется distutils.core.setup()
  3. сделать python setup.py build, а не использовать pip.

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


Решение

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

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

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

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

SET DISTUTILS_USE_SDK=1
SET MSSdk=1

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

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

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

16
ответ дан Christian Long 16 August 2018 в 00:49
поделиться
  • 1
    вы также можете создать свой пакет, используя & lt; code & gt; pip & lt; / code & gt; вместо & lt; code & gt; python setup.py build & lt; / code & gt; – aronadaal 19 May 2015 в 05:41
  • 2
    Волшебство для меня! Спасибо за четкий ответ. – Jey 30 March 2016 в 16:46

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

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

Несмотря на то, что он бесплатный, его довольно сложно найти, поскольку MS продвигает VS 2010. Тем не менее официальные очень прямые ссылки MSDN все еще работает: проверьте https://stackoverflow.com/a/15319069/2227298 для ссылок для скачивания.

678
ответ дан Community 16 August 2018 в 00:49
поделиться
  • 1
    Вам также понадобится MinGW-совместимая версия библиотеки Python. См. eli.thegreenplace.net/2008/06/28/… для получения дополнительной информации – Gili 22 May 2012 в 16:16
  • 2
    Это было для меня :( – fmuecke 22 May 2012 в 20:33
  • 3
    @Gili: Похоже, эта проблема связана с пробелами в переменной, попробуйте обернуть ее в кавычки. Для меня% VS100COMNTOOLS% = "C: \ Program Files (x86) \ Microsoft Visual Studio 10.0 \ Common7 \ Tools & quot; – legends2k 5 October 2012 в 12:44
  • 4
    Это не будет работать для многих вещей, потому что Python полагается на VS2008. Посмотрите на этот ответ: stackoverflow.com/questions/6551724/… – shezi 16 February 2013 в 13:35
  • 5
    ПРЕДУПРЕЖДЕНИЕ!!! Это ответ WRONG . Вы не должны ни при каких обстоятельствах компилировать расширение Python C с использованием другого (версии) компилятора, что тот, который использовался для компиляции самого Python, поскольку эти два (версии) компиляторов, вероятно, будут иметь несовместимые библиотеки времени выполнения C. См. этот ответ для получения более подробной информации. – Piotr Dobrogost 29 April 2013 в 20:35
  • 6
    Как я могу использовать pip для установки этого предварительно скомпилированного исполняемого файла в моей виртуальной среде? – shailenTJ 3 August 2013 в 14:37
  • 7
    @shailenTJ хороший вопрос. Я никогда не делал этого, но попробуйте stackoverflow.com/a/5442340/284795 – Colonel Panic 3 August 2013 в 17:49
  • 8
    Вы можете загрузить бесплатный Visual C ++ 2008 Express Edition с go.microsoft.com/?linkid=7729279 , который установит переменную окружения VS90COMNTOOLS во время установки и, следовательно, построит с совместимым компилятором. – Eric Smith 6 December 2013 в 20:38
  • 9
    Да, лучший способ - установить VS2008. – pylover 11 December 2013 в 02:39
  • 10
    Это было лучшее / простое решение, о котором я знаю. Благодарю. – user1477388 17 December 2013 в 21:22
  • 11
    Также убедитесь, что других версий не установлено. Мне было трудно с этим справиться. Я переформатировал компьютер и установил именно эту версию. Поскольку удаление нескольких версий VS потребовало бы меня так же долго. – jmunsch 30 June 2014 в 15:37
  • 12
    Это Edit 2014 - лучший ответ для меня. Простая команда: убедитесь, что вы обновили setuptools до версии 6.0 или выше с помощью pip install setuptools --upgrade. – orlade 6 January 2015 в 08:41
  • 13

Если вы хотите установить pyodbc в ящик Windows, в котором не установлен , для Visual Studio установлена ​​другая опция - вручную установить pyobbc с использованием двоичного дистрибутива.

особенно полезно, если у вас нет прав администратора на компьютере, с которым вы работаете, и пытаетесь настроить virtualenv .

Шаги:

  1. Загрузите последнюю версию установщика Windows из здесь (pyodbc-XXXwin-Y-py2.7.exe)
  2. Откройте исполняемый файл установщика с помощью 7-Zip (или WinRAR или что угодно)
  3. Извлеките pyodbc.pyd и pyobbc-XXX-py2.7.egg-info и поместите их в [python installation directory or virtualenv]\Lib\site-packages
  4. Нет шага 4:)
1
ответ дан Dane B 16 August 2018 в 00:49
поделиться

самое быстрое решение:

Если у вас есть python 3.4.x, решение просто установить VC ++ 2010, поскольку оно используется для компиляции.

https: //www.visualstudio.com/en-us/downloads#d-2010-express

моя версия python - MSC v.1600 32 бит (intel)] на win32

отлично работает на Windows8

1
ответ дан DmitrySemenov 16 August 2018 в 00:49
поделиться

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

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

7
ответ дан Games Brainiac 16 August 2018 в 00:49
поделиться
  • 1
    Нет, все не так хорошо, я последовал за вашим ответом, но все же я получаю ту же ошибку. – newguy 5 December 2015 в 16:18

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

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

1
ответ дан gmjonker 16 August 2018 в 00:49
поделиться

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

  1. Запустите python.exe, чтобы отобразить, какая версия VC ++ была скомпилирована (пример показан ниже). Важно использовать соответствующую версию компилятора Visual C ++, с которой был скомпилирован Python, поскольку distilutils get_build_version предотвращает смешивание версий ( за предупреждение Piotr ). Yellow (top) - это Python 2.7, скомпилированный с MSC v.1500 (Visual Studio C ++ 2008). Red (внизу) - это Python 3.4.1, скомпилированный с MSC v.1600 (Visual Studio C ++ 2010) Example from the command line showing Python 2.7 compiled with MSC v.1500 and Python 3.4.1 compiled with MSC v.1600 [/g23]
  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 SP1, возможно, были удалены компиляторы и библиотеки для VC ++. Если это так, загрузите Visual C ++ 2010 SP1 Compiler Update .

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

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

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

    Если вам не нужна IDE 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 ++.
146
ответ дан Josh Bowden 16 August 2018 в 00:49
поделиться
  • 1
    Не могу порекомендовать достаточно, чтобы вы do прошли через боль, двигаясь прямо до 64 бит. Это всего лишь вопрос времени, прежде чем вам понадобится более 4 Гб адресного пространства. Я говорю от мучительного опыта после того, как перешел на 32-й бит, потому что это было намного проще, после чего нужно было удалить все, включая зависимости, и перейти на 64-битный. Почти целый уик-энд. – Thomas Browne 9 February 2014 в 11:31
  • 2
    Опять же, я забываю, сколько людей придется использовать Python для решения таких больших задач. И @ThomasBrowne, я уверен, что это было болезненным и ненужным злом опыта. Я изучаю это, и, надеюсь, что-то найду. Основная проблема заключалась в том, что Visual Studio C ++ 2008 Express не поставляется с 64-битным компилятором, но я уверен, что он где-то здесь. – Josh Bowden 9 February 2014 в 22:25
  • 3
    Просто обновите его с дополнительной информацией о том, как получить 64-разрядные компиляторы, если они вам понадобятся. – Josh Bowden 11 February 2014 в 23:04
  • 4
    В моем случае я следую шагу 1 выше и пропустил остальные следующие этот ответ . Теперь я могу установить пакеты, избегая раздражения запуска .bat. – srodriguex 13 April 2014 в 15:32
  • 5
    @srodriguex хорошо в этом случае, похоже, что Python предполагает, что 64-битные инструменты компилятора загружаются в PATH, используя то, что он ищет ...\VC\bin\vcvarsamd64.bat и ...\VC\bin\amd64\vcvarsamd64.bat. – Josh Bowden 13 April 2014 в 20:58

Вам понадобится установить компилятор 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 (aka VC9) доступен из: http://aka.ms/vcpython27

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

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

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

63
ответ дан Martijn Pieters 16 August 2018 в 00:49
поделиться
  • 1
    Согласно моему другому комментарию, вы можете гарантировать, что setuptools обновлен с pip install setuptools --upgrade. – orlade 6 January 2015 в 08:42
  • 2
    Я рассмотрел вопрос о том, почему соответствующая логика находится в setuptools, а не distutils. В конце концов, создание модулей - это основная функциональность, и у нее есть соответствующий код, но более старая версия. Похоже, что distutils сопровождающие просто отказались от поддержки всех возможных вариантов MSSDK и бросили эту работу на своих коллег setuptools, которые были более нетерпеливы. – ivan_pozdeev 11 April 2016 в 01:03
  • 3
    @ivan_pozdeev: setuptools также может выпускаться гораздо чаще, чем distutils, включенный в цикл выпуска Python. И distitutils действительно перешел в режим обслуживания, и работа над новыми системами намечена на его замену. Эта работа застопорилась. – Martijn Pieters♦ 11 April 2016 в 06:26
  • 4
    cython использует distutils, вам нужно импортировать setuptools, которые обезьяны-патчи distutils: github.com/cython/cython/wiki/CythonExtensionsOnWindows – denfromufa 18 April 2016 в 16:32

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

3
ответ дан Michael 16 August 2018 в 00:49
поделиться
  • 1
    Работал для меня. Сообщение об ошибке в конце pip install pysftp имело это решение error: Microsoft Visual C++ 9.0 is required (Unable to find vcvarsall.bat). Get it from http://aka.ms/vcpython27 – Bob Stein 20 January 2016 в 13:29

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

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

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

2
ответ дан mkamioner 16 August 2018 в 00:49
поделиться

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

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

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

3
ответ дан Nicolas78 16 August 2018 в 00:49
поделиться

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

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

7
ответ дан peak 16 August 2018 в 00:49
поделиться

Ответ, заданный @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; в PATH
  3. Изменить (создать, если он не существует), файл distutils.cfg, расположенный в C:\Python26\Lib\distutils\distutils.cfg, будет:
    [build]
    compiler=mingw32
    

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

1
ответ дан Peter Mortensen 16 August 2018 в 00:49
поделиться
  • 1
    32-битные модули python должны быть скомпилированы с 32-битным mingw, в то время как 64-битные модули python должны быть скомпилированы с использованием 64-битного mingw. На 64-битной версии Cygwin доступно 2 исполняемых файла: x86_64-w64-mingw32-gcc и i686-w64-mingw32-gcc. Эти исполняемые файлы, по-видимому, такие же, как те, которые вы получили из Mingw, как правило, (только что скомпилированные внутри среды Cygwin). – CMCDragonkai 14 February 2017 в 03:27

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

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

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

224
ответ дан pradyunsg 16 August 2018 в 00:49
поделиться
  • 1
    Это отлично работает для Python2.6, но по какой-то причине я не могу заставить его работать на Python2.7. Он работает, если я загружаю исходный код пакета и устанавливаю его с помощью «python setup.py install --compile = mingw32», но по какой-либо причине использование easy_install или pip все еще пытается найти vcvarsall. – Jonathan Hartley 16 July 2010 в 17:11
  • 2
    Наконец, я получил scikits.image для установки в Python (x, y) 2.7, добавив C:\msysgit\mingw\mingw32\bin и C:\msysgit\mingw\bin к пользователю PATH и перезапустив Spyder перед запуском pip install снова – endolith 26 November 2011 в 08:11
  • 3
    Нет необходимости ever перезагружаться из-за изменения переменной среды. Открытие нового cmd.exe-процесса достаточно. – Tomalak 29 June 2012 в 09:47
  • 4
    Я все еще не мог это исправить. Это ошибка: gcc: error: unrecognized command line option '-mno-cygwin' error: Setup script exited with error: command 'gcc' failed with exit status 1 после easy_install.exe amara – user 17 September 2013 в 14:17
  • 5
    @user, вы должны открыть этот файл: C:\Python27\Lib\distutils\cygwincompiler.py и удалить из него все экземпляры –mno-cygwin; это связано с тем, что последние версии GCC удалили опцию –mno-cygwin, и ее не должно быть. – Zeinab Abbasimazar 5 May 2014 в 06:55

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

  1. Установить Microsoft Visual C ++ Compiler для 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» из этого пути. join (примерно вокруг строки 247) #productdir = os.path.join(toolsdir, os.pardir, os.pardir, "VC") productdir = os.path.join(toolsdir, os.pardir, os.pardir)

Вышеупомянутые шаги исправили проблему для меня.

2
ответ дан Riyas Deen 16 August 2018 в 00:49
поделиться

У меня есть 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))
20
ответ дан user61629 16 August 2018 в 00:49
поделиться

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

222
ответ дан VolodymyrB 16 August 2018 в 00:49
поделиться
  • 1
    просто совет: вы можете установить пакет с этого сайта в virtualenv, запустив easy_install binary_installer_built_with_distutils.exe в virtualenv, используя этот ответ . – yangzh 7 September 2013 в 05:32
  • 2
    Каждый разработчик Windows Python должен знать об этом – High schooler 26 November 2013 в 20:12
  • 3
    Вы также можете wheel convert ....exe установить этих установщиков, а затем установить их с помощью пипа, когда захотите. – Zooba 29 September 2014 в 23:27
  • 4
    Чтобы быть более точным, lfd.uci.edu/~gohlke/pythonlibs/#mysql-python и после загрузки открываем терминал как admin и запускаем python -m pip install <filename> – arun 3 May 2016 в 18:54
  • 5
    Холли-мать Бога, это прямо на месте. Работает как шарм, TY :) – Amir 31 August 2016 в 09:15

У меня такая же проблема и я решил на данный момент.

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

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

2
ответ дан Vova 16 August 2018 в 00:49
поделиться

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

python setup.py install -c mingw32
23
ответ дан YOU 16 August 2018 в 00:49
поделиться
  • 1
    Чтобы уточнить, команда, которая работает: python setup.py build --compiler=mingw32, а затем python setup.py install – Emil Stenström 12 June 2012 в 22:13
  • 2
    После запуска python setup.py build --compiler = mingw32 я получаю ImportError: нет модуля с именем Cython.Distutils, а Cython устанавливается под Anaconda. Какие-либо предложения? – Serendipity 19 November 2015 в 18:22

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

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

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

. Я определил из этого ответа, что Express 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 C ++ 2010 Redistributable, они конфликтуют с установщиками SDK и требуют деинсталляции.

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

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

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

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

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

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

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

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

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

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

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

CALL setenv / x64

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

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

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

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


TLDR;

  1. Установите Visual Studio Express 2010 (желательно без обновленных распространяемых или SQL-серверов).
  2. Установите Windows 7.1 SDK
  3. Обновление Instal SDK 7.1 SP1 и исправление файла заголовка VS2010 SP1 (этот шаг может не потребоваться).
  4. Вручную создайте 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).
678
ответ дан Community 16 August 2018 в 00:49
поделиться
  • 1
    Вам также понадобится MinGW-совместимая версия библиотеки Python. См. eli.thegreenplace.net/2008/06/28/… для получения дополнительной информации – Gili 22 May 2012 в 16:16
  • 2
    Это было для меня :( – fmuecke 22 May 2012 в 20:33
  • 3
    @Gili: Похоже, эта проблема связана с пробелами в переменной, попробуйте обернуть ее в кавычки. Для меня% VS100COMNTOOLS% = "C: \ Program Files (x86) \ Microsoft Visual Studio 10.0 \ Common7 \ Tools & quot; – legends2k 5 October 2012 в 12:44
  • 4
    Это не будет работать для многих вещей, потому что Python полагается на VS2008. Посмотрите на этот ответ: stackoverflow.com/questions/6551724/… – shezi 16 February 2013 в 13:35
  • 5
    ПРЕДУПРЕЖДЕНИЕ!!! Это ответ WRONG . Вы не должны ни при каких обстоятельствах компилировать расширение Python C с использованием другого (версии) компилятора, что тот, который использовался для компиляции самого Python, поскольку эти два (версии) компиляторов, вероятно, будут иметь несовместимые библиотеки времени выполнения C. См. этот ответ для получения более подробной информации. – Piotr Dobrogost 29 April 2013 в 20:35
  • 6
    Как я могу использовать pip для установки этого предварительно скомпилированного исполняемого файла в моей виртуальной среде? – shailenTJ 3 August 2013 в 14:37
  • 7
    @shailenTJ хороший вопрос. Я никогда не делал этого, но попробуйте stackoverflow.com/a/5442340/284795 – Colonel Panic 3 August 2013 в 17:49
  • 8
    Вы можете загрузить бесплатный Visual C ++ 2008 Express Edition с go.microsoft.com/?linkid=7729279 , который установит переменную окружения VS90COMNTOOLS во время установки и, следовательно, построит с совместимым компилятором. – Eric Smith 6 December 2013 в 20:38
  • 9
    Это было лучшее / простое решение, о котором я знаю. Благодарю. – user1477388 17 December 2013 в 21:22
  • 10
    Также убедитесь, что других версий не установлено. Мне было трудно с этим справиться. Я переформатировал компьютер и установил именно эту версию. Поскольку удаление нескольких версий VS потребовало бы меня так же долго. – jmunsch 30 June 2014 в 15:37
  • 11
    Это Edit 2014 - лучший ответ для меня. Простая команда: убедитесь, что вы обновили setuptools до версии 6.0 или выше с помощью pip install setuptools --upgrade. – orlade 6 January 2015 в 08:41
  • 12
678
ответ дан Community 6 September 2018 в 00:17
поделиться
678
ответ дан Community 6 September 2018 в 00:17
поделиться
55
ответ дан Community 6 September 2018 в 00:17
поделиться
679
ответ дан Community 29 October 2018 в 07:04
поделиться
679
ответ дан Community 29 October 2018 в 07:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: