在Win 7(64位)上安装Scrapy

7

我想安装Python2.6的Scrapy,但似乎进展不顺利。这是已安装的包:

G:\Python26\Scripts>pip freeze
Scrapy==0.16.4
Twisted==12.3.0
libxml2-python==2.7.7
lxml==2.3.6
pyopenssl==0.13
w3lib==1.2
zope.interface==3.8.0

我还安装了iconv和zlib。以下是使用pip安装scrapy时的日志。我不知道接下来该怎么办,是否有什么步骤漏掉了?请提供指示,谢谢。

操作系统:win 7 64位,已安装Visual C++。

C:\Users\d>pip install scrapy
Downloading/unpacking scrapy
  Downloading Scrapy-0.16.4.tar.gz (679kB): 679kB downloaded
  Running setup.py egg_info for package scrapy
    warning: no files found matching 'license.txt' under directory 'scrapy'
    no previously-included directories found matching 'docs\build'
Requirement already satisfied (use --upgrade to upgrade): Twisted>=8.0 in g:\pyt
hon26\lib\site-packages (from scrapy)
Requirement already satisfied (use --upgrade to upgrade): w3lib>=1.2 in g:\pytho
n26\lib\site-packages (from scrapy)
Requirement already satisfied (use --upgrade to upgrade): lxml in g:\python26\li
b\site-packages\lxml-2.3.6-py2.6-win32.egg (from scrapy)
Requirement already satisfied (use --upgrade to upgrade): pyOpenSSL in g:\python
26\lib\site-packages\pyopenssl-0.13-py2.6-win32.egg (from scrapy)
Requirement already satisfied (use --upgrade to upgrade): zope.interface>=3.6.0
in g:\python26\lib\site-packages\zope.interface-3.8.0-py2.6-win32.egg (from Twis
ted>=8.0->scrapy)
Requirement already satisfied (use --upgrade to upgrade): setuptools in g:\pytho
n26\lib\site-packages (from zope.interface>=3.6.0->Twisted>=8.0->scrapy)
Installing collected packages: scrapy
  Running setup.py install for scrapy
    warning: no files found matching 'license.txt' under directory 'scrapy'
    no previously-included directories found matching 'docs\build'
Successfully installed scrapy
Cleaning up...


C:\Users\d>scrapy
Traceback (most recent call last):
  File "G:\Python26\lib\runpy.py", line 122, in _run_module_as_main
    "__main__", fname, loader, pkg_name)
  File "G:\Python26\lib\runpy.py", line 34, in _run_code
    exec code in run_globals
  File "G:\Python26\lib\site-packages\scrapy\cmdline.py", line 7, in <module>
    from scrapy.crawler import CrawlerProcess
  File "G:\Python26\lib\site-packages\scrapy\crawler.py", line 5, in <module>
    from scrapy.core.engine import ExecutionEngine
  File "G:\Python26\lib\site-packages\scrapy\core\engine.py", line 14, in <modul
e>
    from scrapy.core.downloader import Downloader
  File "G:\Python26\lib\site-packages\scrapy\core\downloader\__init__.py", line
16, in <module>
    from .middleware import DownloaderMiddlewareManager
  File "G:\Python26\lib\site-packages\scrapy\core\downloader\middleware.py", lin
e 7, in <module>
    from scrapy.http import Request, Response
  File "G:\Python26\lib\site-packages\scrapy\http\__init__.py", line 11, in <mod
ule>
    from scrapy.http.request.form import FormRequest
  File "G:\Python26\lib\site-packages\scrapy\http\request\form.py", line 9, in <
module>
    import lxml.html
  File "G:\Python26\lib\site-packages\lxml-2.3.6-py2.6-win32.egg\lxml\html\__ini
t__.py", line 12, in <module>
    from lxml import etree
ImportError: DLL load failed: %1 is not a valid Win32 application
8个回答

4
你需要遵循这里(也列在上面)的说明。本问题中列出的特定DLL错误是由于安装了32位OpenSSL和64位其他所有组件(至少在我的情况下)。在我安装了正确版本的OpenSSL后,顺便提一句,我不得不卸载链接中的所有软件包并重新开始安装- 安装程序的顺序对依赖项msi安装程序非常重要,Python27、Windows7、64位系统上Scrapy正常工作。

1

1
请阅读这篇关于在Windows 7上安装Scrapy的指南guide to installing scrapy on Windows 7。其中列出了egenix-pyopenssl作为必需的软件包,另外安装pywin32也可能会有所帮助。

感谢您的建议。奇怪的是,我在注册表中找不到Python变量,无论是在Local_Machine还是在Current_User中都没有。我发现了这个问题Python version 2.6 required, which was not found in the registry,并重新安装了Python 2.6.6(32位)链接,但结果仍然相同。然后我在我的旧电脑上尝试了一下(也是win7 64位),但这个问题没有出现。我又迷失了... - noc13

0

我在Windows 10 (64位)上遇到了同样的问题。 该错误可以通过Python进行复现:

>>> import OpenSSL
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "c:\Python27\lib\site-packages\OpenSSL\__init__.py", line 8, in <module>
    from OpenSSL import crypto, SSL
ImportError: DLL load failed: %1 is not a valid Win32 application.

安装pyOpenSSL后,我遇到了错误ImportError: DLL load failed: The operating system cannot run %1.,通过将libeay32.dllssleay32.dll复制到我的路径中(这里是我的其他答案),问题得以解决。

0
我的解决方案是 pip install --upgrade PyopenSSL

0

我刚刚成功解决了这个问题,对于那些可能会遇到这个问题的人来说,问题在于你需要安装PyWin32。对于Windows用户:

  1. pip install PyWin32 here,选择正确的Python版本和32/64位。现在在命令提示符中:

    pip install c:\users\desktop\pywin32-220.1-cp27-cp27m-win_amd64.whl

  2. 现在,安装pywin32系统文件,从提升的命令提示符中运行“python.exe Scripts \ pywin32_postinstall.py -install” 。以管理员身份运行cmd,并在命令提示符中输入

    python "C:\Python27\Scripts\pywin32_postinstall.py" -install


-1

安装scrapy并不难。我在我的Windows 7 64位计算机上完成了安装:

http://python.org/download/下载并安装Python 2.7: 您需要调整PATH环境变量以包括指向Python可执行文件和其他脚本的路径。以下路径需要添加到PATH:

C:\Python2.7\;C:\Python2.7\Scripts\;

要更新PATH,请打开命令提示符并运行:

c:\python27\python.exe c:\python27\tools\scripts\win_add2path.py

关闭命令提示符窗口并重新打开,以使更改生效,运行以下命令并检查它显示预期的Python版本:
python --version

https://pip.pypa.io/en/latest/installing.html安装pip。 现在打开命令提示符检查pip是否正确安装:

pip --version

在这一点上,Python 2.7和pip软件包管理器必须正常工作,让我们安装Scrapy:

pip install Scrapy

检查Scrapy是否正常工作:

scrapy fetch http://www.google.com

所有这些都来自于:http://doc.scrapy.org/en/latest/intro/install.html


-1

我之前遇到了同样的问题,但已经解决了。

请检查您安装的Python包的版本(32/64位)是否与您安装的Python版本匹配。

由于我现在正在开发一个Scrapy项目,并且我已经将64位的lxml包安装到了我的电脑上,但是我刚刚发现我的计算机默认安装的Python版本是32位。因此版本不匹配,会导致您发布的问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接