获取错误:DLL加载失败:操作系统无法运行%1 - Python 2.7; Scrapy模块; 导入密码学

use*_*254 10 dll module scrapy python-2.7

我无法在Scrapy教程中成功运行第一个命令(http://doc.scrapy.org/en/latest/intro/tutorial.html).粘贴在下面的代码副本是结果(最后有错误).

安装了Python 2.7,我按照scrapy的安装说明进行操作(http://doc.scrapy.org/en/latest/intro/install.html).我在Windows 7(64位)上运行Python 2.7.6 32位.

安装的其他方面:

  1. Twisted-13.2.0.dist-info
  2. zope.interface-4.1.1-py2.7
  3. Scrapy-0.22.2-py2.7
  4. lxml-3.3.3-py2.7
  5. cssselect-0.9.1-py2.7
  6. cryptography-0.3.dist-info
  7. pyOpenSSL-0.14-py2.7
  8. pywin32_system32

这是错误信息:

C:\Python27\Scripts>scrapy startproject tutorial
    Traceback (most recent call last):
      File "C:\Python27\lib\runpy.py", line 162, in _run_module_as_main
        "__main__", fname, loader, pkg_name)
      File "C:\Python27\lib\runpy.py", line 72, in _run_code
        exec code in run_globals
      File "C:\Python27\lib\site-packages\scrapy\cmdline.py", line 9, in <module>
        from scrapy.crawler import CrawlerProcess
      File "C:\Python27\lib\site-packages\scrapy\crawler.py", line 3, in <module>
        from twisted.internet import reactor, defer
      File "twisted\internet\reactor.py", line 38, in <module>
        from twisted.internet import default
      File "twisted\internet\default.py", line 56, in <module>
        install = _getInstallFunction(platform)
      File "twisted\internet\default.py", line 50, in _getInstallFunction
        from twisted.internet.selectreactor import install
      File "twisted\internet\selectreactor.py", line 18, in <module>
        from twisted.internet import posixbase
      File "twisted\internet\posixbase.py", line 24, in <module>
        from twisted.internet import error, udp, tcp
      File "twisted\internet\tcp.py", line 29, in <module>
        from twisted.internet._newtls import (
      File "twisted\internet\_newtls.py", line 21, in <module>
        from twisted.protocols.tls import TLSMemoryBIOFactory, TLSMemoryBIOProtocol
      File "twisted\protocols\tls.py", line 40, in <module>
        from OpenSSL.SSL import Error, ZeroReturnError, WantReadError
      File "build\bdist.win32\egg\OpenSSL\__init__.py", line 8, in <module>
      File "build\bdist.win32\egg\OpenSSL\rand.py", line 11, in <module>
      File "build\bdist.win32\egg\OpenSSL\_util.py", line 4, in <module>
      File "C:\Python27\lib\site-packages\cryptography\hazmat\bindings\openssl\binding.py",      l3, in __init__
      self._ensure_ffi_initialized()
      File "C:\Python27\lib\site-packages\cryptography\hazmat\bindings\openssl\binding.py", l9, in _ensure_ffi_initialized libraries)
      File "C:\Python27\lib\site-packages\cryptography\hazmat\bindings\utils.py", line 77, ind_ffi
        ext_package="cryptography",
      File "C:\Python27\lib\site-packages\cffi\api.py", line 341, in verify
        lib = self.verifier.load_library()
      File "C:\Python27\lib\site-packages\cffi\verifier.py", line 75, in load_library
        return self._load_library()
      File "C:\Python27\lib\site-packages\cffi\verifier.py", line 151, in _load_library
        return self._vengine.load_library()
      File "C:\Python27\lib\site-packages\cffi\vengine_cpy.py", line 138, in load_library
        raise ffiplatform.VerificationError(error)

cffi.ffiplatform.VerificationError: importing 'C:\\Python27\\lib\\site-packages\\cryptogr
\_Cryptography_cffi_48bbf0ebx93c91939.pyd': DLL load failed: The operating system cannot
1.**
Run Code Online (Sandbox Code Playgroud)

voe*_*eba 6

我有这个问题是由于另一个(较旧的?)版本的libeay32.dll和ssleay32.dll在我自己的OpenSSL 1.0.1g安装之前在PATH上.我建议您使用SysInternals的Process Monitor来监视python.exe以查看它实际加载OpenSSL DLL的位置.

就我而言,罪犯是C:\Program Files (x86)\Intel\iCLS Client\我的驱动程序附带的一些英特尔组件.在PATH环境变量中先前移动我自己的OpenSSL bin目录之后,一切都按预期工作.


小智 5

我只是重新安装密码术以使其工作.

pip卸载密码学

pip安装加密


lam*_*ini 4

这是由于 _Cryptography_cffi_48bbf0ebx93c91939.pyd 依赖于 openssl dll ssleay32.dll 和 libeay32.dll。在Windows上编译openssl后,您可以将这2个文件复制到system32。