无法安装pyOpenSSL

问题描述:

我双启动在MacBook Pro上一个Windows 10分区: 的Mac:埃尔卡皮坦(64位) 视窗:视窗10 64位,与FAT文件系统无法安装pyOpenSSL

在Windows格式化,我安装了cygwin和Python 2.7。通过cygwin,我安装了pip和gcc。

我也尝试安装cffi与http://www.lfd.uci.edu/~gohlke/pythonlibs/#cffi,但是当我运行pip安装cffi-1.8.2-cp27-cp27m-win_amd64.whl时,我得到了错误:cffi....whl is not supported on this platform。然后我尝试了很多我不记得的东西,我想我甚至尝试下载一个tar文件,然后现在,当我运行pip install cffi时,我被告知它已经安装。

我然后跑pip install pyOpenSSL,但是,我得到这个错误:

gcc -fno-strict-aliasing -ggdb -O2 -pipe -Wimplicit-function-declaration -fdebug-prefix-map=/usr/src/ports/python/python-2.7.10-1.x86_64/build=/usr/src/debug/python-2.7.10-1 -fdebug-prefix-map=/usr/src/ports/python/python-2.7.10-1.x86_64/src/Python-2.7.10=/usr/src/debug/python-2.7.10-1 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I/usr/include/python2.7 -c build/temp.cygwin-2.6.0-x86_64-2.7/_openssl.c -o build/temp.cygwin-2.6.0-x86_64-2.7/build/temp.cygwin-2.6.0-x86_64-2.7/_openssl.o 
    build/temp.cygwin-2.6.0-x86_64-2.7/_openssl.c:433:30: fatal error: openssl/opensslv.h: No such file or directory 
    compilation terminated. 
    error: command 'gcc' failed with exit status 1 

Command "/usr/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-9Emw8c/cryptography/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-wy64bj-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-9Emw8c/cryptography/ 

当我做pip install cryptography我也得到了这个错误。

我读的地方,我应该尝试:pip install --global-option build_ext --global-option --compiler=mingw64 pyopenssl,和我:

Skipping bdist_wheel for pyopenssl, due to binaries being disabled for it. 
Skipping bdist_wheel for cryptography, due to binaries being disabled for it. 
Installing collected packages: cryptography, pyopenssl 
    Running setup.py install for cryptography ... error 
    Complete output from command /usr/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-fIb1xc/cryptography/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" build_ext --compiler=mingw64 install --record /tmp/pip-7flSlN-record/install-record.txt --single-version-externally-managed --compile: 
    running build_ext 
    generating cffi module 'build/temp.cygwin-2.6.0-x86_64-2.7/_padding.c' 
    creating build 
    creating build/temp.cygwin-2.6.0-x86_64-2.7 
    generating cffi module 'build/temp.cygwin-2.6.0-x86_64-2.7/_constant_time.c' 
    generating cffi module 'build/temp.cygwin-2.6.0-x86_64-2.7/_openssl.c' 
    error: don't know how to compile C/C++ code on platform 'posix' with 'mingw64' compiler 

    ---------------------------------------- 
Command "/usr/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-fIb1xc/cryptography/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" build_ext --compiler=mingw64 install --record /tmp/pip-7flSlN-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-fIb1xc/cryptography/ 

可有人请告知有什么错?

更新:通过cygwin的安装mingw64x86_64-openssl: OpenSSL encryption library for Win64 toolchain,并运行pip install pyopenssl后,我得到了:

running build_ext 
    generating cffi module 'build/temp.cygwin-2.6.0-x86_64-2.7/_padding.c' 
    creating build/temp.cygwin-2.6.0-x86_64-2.7 
    generating cffi module 'build/temp.cygwin-2.6.0-x86_64-2.7/_constant_time.c' 
    generating cffi module 'build/temp.cygwin-2.6.0-x86_64-2.7/_openssl.c' 
    building '_openssl' extension 
    creating build/temp.cygwin-2.6.0-x86_64-2.7/build 
    creating build/temp.cygwin-2.6.0-x86_64-2.7/build/temp.cygwin-2.6.0-x86_64-2.7 
    /usr/bin/clang -fno-strict-aliasing -ggdb -O2 -pipe -Wimplicit-function-declaration -fdebug-prefix-map=/usr/src/ports/python/python-2.7.10-1.x86_64/build=/usr/src/debug/python-2.7.10-1 -fdebug-prefix-map=/usr/src/ports/python/python-2.7.10-1.x86_64/src/Python-2.7.10=/usr/src/debug/python-2.7.10-1 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I/usr/include/python2.7 -c build/temp.cygwin-2.6.0-x86_64-2.7/_openssl.c -o build/temp.cygwin-2.6.0-x86_64-2.7/build/temp.cygwin-2.6.0-x86_64-2.7/_openssl.o 
    build/temp.cygwin-2.6.0-x86_64-2.7/_openssl.c:433:10: fatal error: 'openssl/opensslv.h' file not found 
    #include <openssl/opensslv.h> 
      ^
    1 error generated. 
    error: command '/usr/bin/clang' failed with exit status 1 

    ---------------------------------------- 
Command "/usr/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-ZsWN3h/cryptography/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-D2XH0P-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-ZsWN3h/cryptography/ 
+0

您是否安装了_OpenSSL_(因为_pyOpenSSL_只是它的一个_Python_包装)? – CristiFati

+0

是的,我有。它位于\ cydrive \ c \ OpenSSL-win64。我从源代码安装:https://www.openssl.org/source/ – user3918985

+0

这条路径好像你已经为_Win_安装_OpenSSL_,最喜欢你必须安装(或者建立如果不可用)_Cygwin_版本。作为快速测试运行'/ cydrive/c/OpenSSL-win64/bin/openssl version -a'并查看它输出的内容(if)。 – CristiFati

我也有类似的问题,安装的libssl头文件,所以我可以编译Python模块:

sudo apt-get install libssl-dev