Skip to main content

Issue with installing python-axolotl or python-axolotl-curve25519 on Windows

It is peeve amazing how many hours get burnt while trying to resolve simple package dependency issues. I may be too dumb to proffer a lasting one-fits-all solution to all dependency issues, but I got this issue fixed in my own case.

Problem Description:
The python-axolotl library requires certain dependencies that are not properly managed when installing libraries via a command line's requirement.txt file.

I got real help by reading through this link below, but this page might be more helpful when it comes to detailed instructions.
Actual instructions: https://github.com/tgalal/python-axolotl

Typical errors might look like the following:

1. In this case, missing library(s). Libraries needed for compiling some python resources. Unfortunately, http://aka.ms/vcpython27 has been decommissioned because Python2x is EOL. You can still get the VcPython27 from an archive at https://web.archive.org/web/20210106040222/download.microsoft.com/download/7/9/6/796EF2E4-801B-4FC4-AB28-B59FBF6D907B/VCForPython27.msi
error: command 'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Common\\Microsoft\\Visual C++ for Python\\9.0\\VC\\Bin\\amd64\\cl.exe' failed with exit status 2

    ----------------------------------------
Command "C:\Users\Administrator\AppData\Local\Continuum\Anaconda2\envs\swdb\python.exe -u -c "import setuptools, tokenize;__file__='c:\\users\\justink\\appdata\\local\\temp\\pip-yja6cx-build\\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record c:\users\justink\appdata\local\temp\pip-f0cy1o-record\install-record.txt --single-version-externally-managed --compile" failed with error code 1 in c:\users\justink\appdata\local\temp\pip-yja6cx-build\


2. In this case, there is a missing file in the package discussed above (VCForPython27.msi). Copy the file at this URL: https://github.com/mattn/gntp-send/blob/master/include/msinttypes/stdint.h
and paste it in C:\Users\Administrator\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\VC\include\
curve/curve25519-donna.c(49) : fatal error C1083: Cannot open include file: 'stdint.h': No such file or directory
  error: command 'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Common\\Microsoft\\Visual C++ for Python\\9.0\\VC\\Bin\\amd64\\cl.exe' failed with exit status 2 

Note: As a requirement, the authors of python-axolotl require that MinGW (plus GCC) and Zlib must be installed. The next instructions will guide you on How to get this done.

3. To download MinGW for windows(MinGW-get-setup.exe), I suggest this link
https://osdn.net/projects/mingw/releases/
This is just an installation manager for MinGW. After installation, the manager will provide different variants and we shall install the necessary variant.

4. Add MinGW to environment variables
e.g Add C:\MinGW\bin to environment variables

5. Create a new file named distutils.cfg, put this new file in the Lib/distutils folder of your python installation e.g C:\python27\Lib\distutils.
inside this file add these 2 lines and save:
[build]
compiler=mingw32

6. Open a new instance of the Command prompt and run this command, Remember what I said about variants? here it is...

mingw-get.exe install gcc
Note: due to some spaces in my Docker path variables, My system was unable to see the MinGW path so, I appended the MinGW to the beginning of the Path string. Another way is to open the CMD and navigate to the bin directory of MinGW.


7. download a version of Zlib, I suggest using this link
http://gnuwin32.sourceforge.net/packages/zlib.htm


Now you can resume any previous installation of python-module or libraries that were failing previously.

Examples of installs affected by these are:

https://github.com/PyWaves/PyWaves/issues/59
https://github.com/romanzaikin/BurpExtension-WhatsApp-Decryption-CheckPoint/issues/1
https://github.com/mukulhase/WebWhatsapp-Wrapper/issues/211

Let me know if there are other things I might have left out, or perhaps one of the links is broken. It will help someone someday. There are quite a few other things I did while trying to resolve this issue, but I count them as insignificant, if your case seems a bit different, let me know, I could be of help.


If there is something not right with this article, please I would like to know. feel free to drop a comment, all kinds of comments are welcomed but the nice ones are well appreciated and no comment will be ignored.

Comments

Popular Articles

Chrome Extension (part 1): Injecting External Scripts into a Web Page

Recently, I was required to develop a chrome extension for some executives. This plugin only targeted a few of our most visited websites. There was a lot of approaches to implement the extension and all our use cases. One particular challenge was trying to inject scripts from our own CDN into specific web pages. the scripts were required to interact with the page and all variables possible. Since there is a script isolation thing for Chrome Extensions, I felt this was a good challenge to take up in my spare time. Here is a sample of my content script. content.js document.onreadystatechange = function () { console.log("document state is:" + document.readyState); if (document.readyState == "complete") { let randAntiCache = Math.random().toString().split('.')[1]; let scriptURL4="http://localhost.test/testscript.js?v="+randAntiCache; let scriptnode4 = document.createElement("script"); scriptnode4.setAttribute("s...

Who is this Brown Skin Girl?

In the recent wake of a great musical sensation and a re-make of the famous Lion King movie, Beyonce has been on the global selection of artistes to share performances. Today, I will try to examine the poetry of the track titled Brown Skin Girl, All interpretations in this article are my personal candid opinion. so feel free to share yours in the comments section, i will be glad to add it to my edits. So while I may not pretty boy; your heart is amiss; Play it like a villain `cause she caught in a wave This paints the picture of a guy who feels He is not good enough for the lady of his dreams, so he said Tonight I am walking away Lined up my mind, on the grind yeah yeah meaning he tryin' to give up. But then in the chorus, He said Tonight I might fall in love Depending on how you hold me I'm glad that I'm calming down can't let no one come control me So this dude aint feeling he's the kinda guy for bae, but bae be doubting if she still want...