Ошибка установки Microsoft Windows Python-3.6 PyCrypto

pip install pycrypto отлично работает с python3.5.2, но не работает с python3.6 со следующей ошибкой:

inttypes.h(26): ошибка C2061: синтаксическая ошибка: идентификатор 'intmax_t'


person user1602    schedule 25.01.2017    source источник


Ответы (8)


Файл include\pyport.h в каталоге установки Python больше не имеет #include ‹ stdint.h >. Это оставляет intmax_t неопределенным.

Обходной путь для компилятора Microsoft VC — принудительное включение stdint.h через переменную среды ОС CL:

  1. Открыть командную строку
  2. Настройте среду VC, запустив vcvars*.bat (выберите имя файла в зависимости от версии и архитектуры VC)
  3. установите CL=-FI"Full-Path\stdint.h" (используйте реальное значение Full-Path для среды)
  4. pip установить pycrypto
person user1602    schedule 25.01.2017
comment
Это было исправлено в Windows Python? - person CMCDragonkai; 15.02.2017
comment
Почему это не было исправлено в дистрибутив Windows Python? Для справки, я смог использовать vcvarsall.bat C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat. - person CMCDragonkai; 15.02.2017
comment
Сообщалось ли об этом в системе отслеживания ошибок Python? Если да, то может ли кто-нибудь дать ссылку? Если нет, может быть, кто-то смог бы это сделать. - person Paul Moore; 20.03.2017
comment
О проблеме сообщили на странице github.com/dlitz/pycrypto/issues/221. Проблема связана с самим pycrypto, который предоставляет неполный stdint.h, и я добавил объяснение необходимого исправления в этот отчет об ошибке. - person Paul Moore; 20.03.2017
comment
Права администратора необходимы, если среда Python находится в защищенном/общедоступном месте. - person user1602; 19.07.2017
comment
Мне не нужны были права администратора в Windows 7 с UAC. - person Quolonel Questions; 09.09.2017
comment
Попробуйте Windows 10 и pip, а не setup.py - person user1602; 10.09.2017
comment
Для меня шаги 1+2 можно было бы сократить до: В меню "Пуск" запустите командную строку Visual C++ 2015 x86 Native Build Tools - person akavel; 08.12.2017
comment
также, если вы создаете его с помощью VS 2017, расположение заголовка должно быть изменено следующим образом: set CL=-FI%VCINSTALLDIR%\Tools\MSVC\14.16.27023\include\stdint.h - конечно, номер 14.16.27023 зависит от версии VS, у меня 15.9. - person Kasia Gauza; 15.01.2019
comment
На сегодняшний день лучший совет — переключиться на pycryptodome. См. Ответ Бхувана Карутури - person robertspierre; 11.04.2019
comment
Это сработало для меня в Windows 10 с Visual Studio 2019 (он же Visual Studio 14) с использованием set CL=-FI"%VCINSTALLDIR%\include\stdint.h" - person Stefan; 13.03.2020

Мне удалось установить pycrypto 2.6.1 на python 3.6, Windows 10, Visual Studio 2017.

  1. Откройте командную строку x86_x64 Cross-Tools для VS 2017 с правами администратора в меню «Пуск».

  2. set CL=-FI"%VCINSTALLDIR%Tools\MSVC\14.11.25503\include\stdint.h"

  3. pip install pycrypto

введите здесь описание изображения

person Marko Rothstein    schedule 24.10.2017
comment
Наконец-то рабочее решение!! Просто не забудьте проверить актуальную версию папки MSVC, у меня была 14.12.25827. Спасибо друг - person pagep; 10.01.2018
comment
Спасибо @Marko :-) У меня сработали эти 3 команды. 1. C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build›vcvarsx86_amd64.bat 2. Установите CL=-FI%VCINSTALLDIR%Tools\MSVC\14.16.27023\include\stdint. ч 3. pip установить pycrypto == 2.6.1 - person dinu0101; 04.10.2019
comment
Я думаю о кнопке «Пожертвовать PayPal» этому парню - person Roberth Solís; 30.10.2020

Благодаря ответу user1960422.
Шаги PowerShell для pycrypto 2.6.1 (через simple-crypt)/Python 3.6/Windows 10:

$env:VCINSTALLDIR="C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC"
$env:CL="-FI`"$env:VCINSTALLDIR\INCLUDE\stdint.h`""

Успешная установка simple-crypt/pycrypto

Мне также нужно было следовать ответу в: https://stackoverflow.com/a/24822876/8751739, чтобы исправить winrandom ошибка модуля.

person naaman    schedule 11.12.2017
comment
Это помогло в PowerShell, но также мне понадобилось Visual Studio не может собрать из-за в rc.exe для успешного связывания. - person Jari Turkia; 22.02.2018
comment
инструменты сборки Visual Studio 2017, и в моем случае VCINSTALLDIR находится в VC\Tools\MSVC\14.16.27023 - person Doogle; 18.12.2018

Используйте PyCryptodome вместо pycrypto. pycrypto прекращено и больше не поддерживается. PyCryptodome предоставляет почти тот же API, что и pycrypto (источник).

person bhuvan karuturi    schedule 17.11.2017
comment
Этот вопрос касается проблемы компиляции и того, что использовать вместо этого - person user1602; 20.12.2020

Мне удалось установить pycrypo 2.6.1 на python 3.6 и Windows 10.

  1. Установите переменную среды, как показано ниже. установленный каталог Visual Studio
  2. Откройте cmd.exe
  3. Активировать виртуальную среду
  4. Загрузите выпуск pycrypto 2.6.1 с github и разархивируйте его.
  5. установить переменную среды для pycrypto set CL=/FI"%VCINSTALLDIR%\\INCLUDE\\stdint.h" %CL%
  6. Запустите команду установки python setup.py install
  7. мой результат здесь введите здесь описание изображения

Я был бы рад, если бы это могло помочь кому-то.

person user1960422    schedule 14.07.2017
comment
Чем он отличается от исходного ответа? - person user1602; 15.07.2017
comment
@ user1602 вам не нужно выполнять следующие шаги в исходном ответе --- 1. Откройте командную строку с правами администратора 2. Запустите vsvars32.bat из вашей версии VC - person user1960422; 16.07.2017
comment
В вашем случае вы устанавливаете VCINSTALLDIR вручную, я делаю это через vsvars32.bat. В конце концов, вы предлагаете одно и то же решение. - person user1602; 19.07.2017

Для тех, кто сталкивается с такой же ситуацией, как у меня:

Оболочка

  • Windows 10 Корпоративная v10.0.18363 сборка 18363
  • Питон 3.8

Шаги

  1. Загрузите Инструменты сборки Microsoft C++ по адресу https://visualstudio.microsoft.com/visual-cpp-build-tools/
  2. Run above setup exe and install default components
    • MSVC v142 - VS 2019 C++ x64/x86 build tools
    • Пакет SDK для Windows 10
    • Инструменты С++ CMake для Windows
    • Основные функции инструментов тестирования — инструменты сборки
    • С++ AddressSanitizer (экспериментальный)
  3. Перезагрузите компьютер
  4. Меню «Пуск» › Командная строка x64 Native Tools для VS 2019, появится всплывающее окно cmd
  5. Выполнить set CL=-FI"C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.27.29110\include\stdint.h"
  6. Запустите pip install pycrypto в окне cmd (может потребоваться привилегия администратора) 1
person Neo Tan    schedule 25.09.2020

  • Удалите текущую версию Python

  • Установите Python для архитектуры amd64

  • Следуйте другим принятым решениям:

    • open "x86_x64 Cross-Tools Command Prompt for VS 2017"
    • Добавьте новую переменную среды для пути установки Visual Studio MSVC.
    • set CL=-FI"%VCINSTALLDIR%Tools\MSVC\14.11.25503\include\stdint.h"
    • pip install pycrypto
person Sebastian Duran    schedule 22.02.2020

Для меня это исправляет это:

с Python 2 у меня есть

sudo apt-get install python-dev  \
     build-essential libssl-dev libffi-dev \
     libxml2-dev libxslt1-dev zlib1g-dev \
     ...

с Python 3 мне нужно

sudo apt-get install python3 python-dev python3-dev \
     build-essential libssl-dev libffi-dev \
     ...

Установка python-dev python3-dev исправляет это для меня!

person Jee Mok    schedule 17.04.2020
comment
Это проблема платформы Windows, а не Ubuntu. Ваш ответ здесь неуместен. - person user1602; 17.04.2020