我的操作系统是Win10-x64。
我在MS-DOS窗口中运行scrapy命令:scrapy startproject tutorial
然后得到以下错误消息:
我确信我已经安装了scrapy,但是任何scrapy命令都无法正常工作。
我注意到日志:“来自cryptography.hazmat.bindings._openssl import ffi,lib”,我发现文件cryptography.hazmat.bindings._openssl发现它_openssl是一个.pyd文件。
看来这个文件中存在一些错误。
我还注意到Anaconda中的OpenSSL包是用vc9构建的,我安装了微运行时环境,它对我没有帮助。
尝试使用包含最新软件包的conda-forge
频道。
conda install scrapy -c conda-forge
注意:使用新环境,因为您可能通过cryptography
安装了lxml
(可能还有pip
),这可能不适合conda
环境。
name = scrapy或cryptography
只是pip uninstall "name"
作为它的可能性conda告诉你一些卸载因为依赖而无法完成。
此后pip install "name"
问题很可能现在已经解决了。
我使用Visual Studio 2015构建OpenSSL WIN64版本,并将libeay32.dll和ssleay32.dll替换为“C:\ Windows \ System32”,然后scrapy命令工作。它还说建立一个WIN32版本更好,但我没试过。我构建了动态库,而不是静态库。为任何兴趣的人建立命令:
cd C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin
vcvars64.bat
perl Configure VC-WIN64A no-asm --prefix="c:\openssl-1.0.2j\build-vc14-debug-win64-dll"
ms\do_win64a.bat
nmake -f ms\ntdll.mak
nmake -f ms\ntdll.mak test
nmake -f ms\ntdll.mak install
nmake -f ms\ntdll.mak clean