Reputation: 2186
pip install pycrypto
works fine with python3.5.2 but fails with python3.6 with the following error:
inttypes.h(26): error C2061: syntax error: identifier 'intmax_t'
Upvotes: 46
Views: 62567
Reputation: 1
C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Auxiliary\Build>vcvars64.bat
** Visual Studio 2019 Developer Command Prompt v16.11.14 ** Copyright (c) 2021 Microsoft Corporation ********************************************************************** [vcvarsall.bat] Environment initialized for: 'x86_x64'
C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools>set CL=-FI"C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include\stdint.h"
C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools>pip install pycrypto Collecting pycrypto Using cached pycrypto-2.6.1.tar.gz (446 kB) Preparing metadata (setup.py) ... done Building wheels for collected packages: pycrypto Building wheel for pycrypto (setup.py) ... done Created wheel for pycrypto: filename=pycrypto-2.6.1-cp39-cp39-win_amd64.whl size=528832 sha256=250926fc0e06b4c1ed9c2fb16ad9b4723984ef68c1e5383b26c974235536a0ae Stored in directory: c:\users\volka\appdata\local\packages\pythonsoftwarefoundation.python.3.9_qbz5n2kfra8p0\localcache\local\pip\cache\wheels\9d\29\32\8b8f22481bec8b0fbe7087927336ec167faff2ed9db849448f Successfully built pycrypto Installing collected packages: pycrypto Successfully installed pycrypto-2.6.1
C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools>
Upvotes: 0
Reputation: 301
For ppl who is encountering same situation as mine:
Env
Steps
set CL=-FI"C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.27.29110\include\stdint.h"
pip install pycrypto
in a cmd window(may need admin privilege)Upvotes: 5
Reputation: 115
Uninstall your current Python version
Install Python for amd64 architecture
Follow the other accepted solutions:
set CL=-FI"%VCINSTALLDIR%Tools\MSVC\14.11.25503\include\stdint.h"
pip install pycrypto
Upvotes: 2
Reputation: 441
I've succeeded install pycrypto 2.6.1 on python 3.6, Windows 10, Visual Studio 2017.
Open "x86_x64 Cross-Tools Command Prompt for VS 2017" with administrator privilege in start menu.
set CL=-FI"%VCINSTALLDIR%Tools\MSVC\14.11.25503\include\stdint.h"
pip install pycrypto
Upvotes: 37
Reputation: 6556
For me this fixes it:
with Python 2, I have
sudo apt-get install python-dev \
build-essential libssl-dev libffi-dev \
libxml2-dev libxslt1-dev zlib1g-dev \
...
with Python 3, I need
sudo apt-get install python3 python-dev python3-dev \
build-essential libssl-dev libffi-dev \
...
Installing python-dev python3-dev
fixes it for me!
Upvotes: 0
Reputation: 331
Use PyCryptodome instead of pycrypto. pycrypto is discontinued and is no longer actively supported. PyCryptodome exposes almost the same API as pycrypto (source).
Upvotes: 17
Reputation: 2186
The file include\pyport.h in Python installation directory does not have #include < stdint.h > anymore. This leaves intmax_t undefined.
A workaround for Microsoft VC compiler is to force include stdint.h via OS environment variable CL:
Upvotes: 75
Reputation: 942
Thanks to user1960422's answer.
PowerShell steps for pycrypto 2.6.1 (via 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`""
Successful simple-crypt / pycrypto install
I also needed to follow the answer in: https://stackoverflow.com/a/24822876/8751739 to fix a winrandom
module error.
Upvotes: 23
Reputation: 569
I've succeeded install pycrypo 2.6.1 on python 3.6 and windows 10.
set CL=/FI"%VCINSTALLDIR%\\INCLUDE\\stdint.h" %CL%
python setup.py install
I would be glad if this could be help someone.
Upvotes: 6