2017-01-25 64 views

回答

37

文件包括Python安裝目錄\ pyport.h沒有#include < stdint.h>了。這留下了intmax_t未定義。

一種微軟VC編譯的解決方法是強制包括stdint.h通過OS環境變量CL

具有管理員權限
  • 運行vsvars32.bat從你的版本
    1. 打開命令提示符VC
    2. 組CL = -FI 「%VCINSTALLDIR%\ INCLUDE \ stdint.h」
    3. PIP安裝pycrypto
  • +0

    這已被修補到Windows Python嗎? – CMCDragonkai

    +6

    爲什麼這個補丁已經被修補到Windows Python發行版中?爲了記錄,我能夠使用vcvarsall.bat'C:\ Program Files(x86)\ Microsoft Visual Studio 14.0 \ VC \ vcvarsall.bat'。 – CMCDragonkai

    +0

    這是否在Python bug跟蹤器上報告過?如果是這樣,有人可以提供參考?如果沒有,也許有人可以這樣做。 –

    1

    我已經成功的蟒蛇3.6和Windows 10

    1. 設置環境變量像下面安裝pycrypo 2.6.1。 visual studio installed directory
    2. 開放的cmd.exe
    3. 激活的virtualenv從GitHub
    4. 下載pycrypto 2.6.1版本並解壓縮。
    5. 設置環境變量pycrypto set CL=/FI"%VCINSTALLDIR%\\INCLUDE\\stdint.h" %CL%
    6. 運行setup命令 python setup.py install
    7. 我的結果是這裏 enter image description here

    我會很高興,如果這可以幫助別人。

    +0

    它與原來的答案? – user1602

    +0

    @ user1602您不必在原始答案中執行以下步驟 --- 1.以管理員權限打開命令提示符 2.從您的VC – user1960422

    +0

    版本運行vsvars32.bat在您的情況下,您手動設置VCINSTALLDIR,我通過vsvars32.bat來做到這一點。最後你提出了相同的解決方案。 – user1602

    2

    我已經成功的蟒蛇3.6安裝pycrypto 2.6.1時,Windows 10時,Visual Studio 2017年

    1. 開放 「x86_x64跨工具命令提示符爲VS 2017年」 在開始菜單的管理員權限。
    2. 集CL = -FI 「%VCINSTALLDIR%工具\ MSVC \ 14.11.25503 \ \包括stdint.h」
    3. PIP安裝pycrypto

    enter image description here

    +0

    最後的工作解決方案!只要確保檢查MSVC文件夾的實際版本,我有'14.12.25827'。感謝隊友 – pagep

    2

    使用PyCrytodome,而不是pycryto。 Pycryto已停產,不再支持。

    7

    感謝user1960422的回答。
    pycrypto 2.6.1(通過simple-crypt)/ Python 3的PowerShell步驟。

    $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

    我也需要遵循答案:6/10的Windows到https://stackoverflow.com/a/24822876/8751739修復winrandom模塊錯誤。

    +0

    這有助於PowerShell,但我也需要[Visual Studio無法建立由於rc.exe](https://stackoverflow.com/questions/14372706/visual-studio-cant-build-due-to- rc-exe),以便鏈接成功。 –