steemit / steem-python

The official Python (3) library for the Steem Blockchain.
https://steem.io
MIT License
153 stars 99 forks source link

Failed building wheel for scrypt #111

Closed ghost closed 6 years ago

ghost commented 6 years ago

Windows 10 64 Fresh install using Anaconda Python 3.6.3 |Anaconda, Inc.| (default, Oct 15 2017, 03:27:45) [MSC v.1900 64 bit (AMD64)] on win32

I have installed C++ Visual Studio

But I keep getting an error for scrypt :

` C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\x86_amd64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -DHAVE_CONFIG_H -Dinline=__inline -Iscrypt-1.2.0 -Iscrypt-1.2.0/lib -Iscrypt-1.2.0/lib/scryptenc -Iscrypt-1.2.0/lib/crypto -Iscrypt-1.2.0/lib/util -Iscrypt-1.2.0/libcperciva/cpusupport -Iscrypt-1.2.0/libcperciva/alg -Iscrypt-1.2.0/libcperciva/util -Iscrypt-1.2.0/libcperciva/crypto -Ic:\OpenSSL-Win64\include -Iscrypt-windows-stubs/include -IC:\Anaconda3\include -IC:\Anaconda3\include "-IC:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\8.1\include\shared" "-IC:\Program Files (x86)\Windows Kits\8.1\include\um" "-IC:\Program Files (x86)\Windows Kits\8.1\include\winrt" /Tcsrc/scrypt.c /Fobuild\temp.win-amd64-3.6\Release\src/scrypt.obj scrypt.c scrypt-1.2.0/lib/crypto\crypto_scrypt.h(33): fatal error C1083: Cannot open include file: 'unistd.h': No such file or directory error: command 'C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\x86_amd64\cl.exe' failed with exit status 2


Failed building wheel for scrypt Running setup.py clean for scrypt Failed to build scrypt Installing collected packages: toml, scrypt, steem Found existing installation: toml 0.9.3 Uninstalling toml-0.9.3: Successfully uninstalled toml-0.9.3 Running setup.py install for scrypt ... error Complete output from command C:\Anaconda3\python.exe -u -c "import setuptools, tokenize;file='C:\Users\Florian\AppData\Local\Temp\pip-build-6f9fm9p6\scrypt\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\Florian\AppData\Local\Temp\pip-me03heh1-record\install-record.txt --single-version-externally-managed --compile: running install running build running build_py creating build creating build\lib.win-amd64-3.6 copying scrypt.py -> build\lib.win-amd64-3.6 running build_ext building '_scrypt' extension creating build\temp.win-amd64-3.6 creating build\temp.win-amd64-3.6\Release creating build\temp.win-amd64-3.6\Release\src creating build\temp.win-amd64-3.6\Release\scrypt-1.2.0 creating build\temp.win-amd64-3.6\Release\scrypt-1.2.0\lib creating build\temp.win-amd64-3.6\Release\scrypt-1.2.0\lib\crypto creating build\temp.win-amd64-3.6\Release\scrypt-1.2.0\lib\scryptenc creating build\temp.win-amd64-3.6\Release\scrypt-1.2.0\lib\util creating build\temp.win-amd64-3.6\Release\scrypt-1.2.0\libcperciva creating build\temp.win-amd64-3.6\Release\scrypt-1.2.0\libcperciva\alg creating build\temp.win-amd64-3.6\Release\scrypt-1.2.0\libcperciva\crypto creating build\temp.win-amd64-3.6\Release\scrypt-1.2.0\libcperciva\util creating build\temp.win-amd64-3.6\Release\scrypt-windows-stubs C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\x86_amd64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -DHAVE_CONFIG_H -Dinline=__inline -Iscrypt-1.2.0 -Iscrypt-1.2.0/lib -Iscrypt-1.2.0/lib/scryptenc -Iscrypt-1.2.0/lib/crypto -Iscrypt-1.2.0/lib/util -Iscrypt-1.2.0/libcperciva/cpusupport -Iscrypt-1.2.0/libcperciva/alg -Iscrypt-1.2.0/libcperciva/util -Iscrypt-1.2.0/libcperciva/crypto -Ic:\OpenSSL-Win64\include -Iscrypt-windows-stubs/include -IC:\Anaconda3\include -IC:\Anaconda3\include "-IC:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\8.1\include\shared" "-IC:\Program Files (x86)\Windows Kits\8.1\include\um" "-IC:\Program Files (x86)\Windows Kits\8.1\include\winrt" /Tcsrc/scrypt.c /Fobuild\temp.win-amd64-3.6\Release\src/scrypt.obj scrypt.c scrypt-1.2.0/lib/crypto\crypto_scrypt.h(33): fatal error C1083: Cannot open include file: 'unistd.h': No such file or directory error: command 'C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\x86_amd64\cl.exe' failed with exit status 2

----------------------------------------

Command "C:\Anaconda3\python.exe -u -c "import setuptools, tokenize;file='C:\Users\Florian\AppData\Local\Temp\pip-build-6f9fm9p6\scrypt\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\Florian\AppData\Local\Temp\pip-me03heh1-record\install-record.txt --single-version-externally-managed --compile" failed with error code 1 in C:\Users\Florian\AppData\Local\Temp\pip-build-6f9fm9p6\scrypt\`

AmoghSubhedar commented 6 years ago

I had a similar problem when installing the steem-python package on Windows. From the errors, I think you are missing some header files for building this package. Try installing python3-dev through pip3.

cenpengzhu commented 6 years ago

I met the same error. I created and edited a unistd.h file.Then it told me that I need a "sys/time.h"file.

cenpengzhu commented 6 years ago

I got a compiled wheel from here,and changed the name for my environment python36.Now i can import steem.

spiiin commented 6 years ago

You can install scrypt from sources via

$ hg clone http://bitbucket.org/mhallin/py-scrypt
$ cd py-scrypt
$ PATHTOPYTHON3 setup.py build

You need to open setup.py and change lines:

    if struct.calcsize('P') == 8:
        library_dirs = ['c:\OpenSSL-Win64\lib']
        includes = ['c:\OpenSSL-Win64\include', 'scrypt-windows-stubs/include']
    else:
        library_dirs = ['c:\OpenSSL-Win32\lib']
        includes = ['c:\OpenSSL-Win32\include', 'scrypt-windows-stubs/include']

to your OpenSSL libraries. You can use libraries from here: https://slproweb.com/products/Win32OpenSSL.html (you need to use version <1.1.0, because of names of lib files are changed in it, latest correct version - Win32 OpenSSL v1.0.2n)

holgern commented 6 years ago

Can set to resolved. I release py-scrypt 0.8.3, which includes wheels for python 3.6. Read more here: https://steemit.com/utopian-io/@holger80/py-scrypt-0-8-3-released

holgern commented 6 years ago

You can try my conda-forge version: https://github.com/conda-forge/steem-feedstock https://utopian.io/utopian-io/@holger80/install-steem-python-easily-by-conda-forge

beeprime commented 6 years ago

Fixed it today by issuing apt-get install libssl-dev apt-get install openssl

cyon1c commented 6 years ago

This is an environment issue, not an issue with the library. Closing.