7

したがって、ユーザーが Scrapy 用にインストールする必要がある多くのパッケージの中で、私は pyOpenSSL に問題があると思います。

チュートリアルの Scrapy プロジェクトを作成しようとすると、次の出力が得られます。

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 168, in <module>
    execute()
  File "C:\Python27\lib\site-packages\scrapy\cmdline.py", line 122, in execute
    cmds = _get_commands_dict(settings, inproject)
  File "C:\Python27\lib\site-packages\scrapy\cmdline.py", line 46, in _get_comma
nds_dict
    cmds = _get_commands_from_module('scrapy.commands', inproject)
  File "C:\Python27\lib\site-packages\scrapy\cmdline.py", line 29, in _get_comma
nds_from_module
    for cmd in _iter_command_classes(module):
  File "C:\Python27\lib\site-packages\scrapy\cmdline.py", line 20, in _iter_comm
and_classes
    for module in walk_modules(module_name):
  File "C:\Python27\lib\site-packages\scrapy\utils\misc.py", line 68, in walk_mo
dules
    submod = import_module(fullpath)
  File "C:\Python27\lib\importlib\__init__.py", line 37, in import_module
    __import__(name)
  File "C:\Python27\lib\site-packages\scrapy\commands\bench.py", line 3, in <mod
ule>
    from scrapy.tests.mockserver import MockServer
  File "C:\Python27\lib\site-packages\scrapy\tests\mockserver.py", line 6, in <m
odule>
    from twisted.internet import reactor, defer, ssl
  File "C:\Python27\lib\site-packages\twisted\internet\ssl.py", line 59, in <mod
ule>
    from OpenSSL import SSL
  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 3, in <module>
ImportError: No module named cryptography.hazmat.bindings.openssl.binding

そして、その最後のエラー (cryptography.hazmat という名前のモジュールはありません) をググると、pyOpenSSL に関する言及がいくつか表示されます。そこで、最新バージョンであることを確認するために実行easy_install pyOpenSSL==0.14してみましたが、実行すると、次の出力が得られます。

c:\python27\include\pymath.h(22) : warning C4273: 'round' : inconsistent dll lin
kage
        C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\INCLUDE\math.h(51
6) : see previous definition of 'round'
c:\users\bk\appdata\local\temp\easy_install-tztawu\cryptography-0.4\temp\easy_in
stall-svxsjy\cffi-0.8.2\c\misc_win32.h(225) : error C2632: 'char' followed by 'b
ool' is illegal
c:\users\bk\appdata\local\temp\easy_install-tztawu\cryptography-0.4\temp\easy_in
stall-svxsjy\cffi-0.8.2\c\misc_win32.h(225) : warning C4091: 'typedef ' : ignore
d on left of 'unsigned char' when no variable is declared
c/_cffi_backend.c(5295) : warning C4146: unary minus operator applied to unsigne
d type, result still unsigned
c/_cffi_backend.c(5296) : warning C4146: unary minus operator applied to unsigne
d type, result still unsigned
c/_cffi_backend.c(5297) : warning C4146: unary minus operator applied to unsigne
d type, result still unsigned
c/_cffi_backend.c(5298) : warning C4146: unary minus operator applied to unsigne
d type, result still unsigned
error: Setup script exited with error: command '"C:\Program Files (x86)\Microsof
t Visual Studio 12.0\VC\BIN\cl.exe"' failed with exit status 2

したがって、Scrapy を適切に起動して実行するために何をする必要があるかについて、少し迷っています。

4

4 に答える 4

21

Mac OS でも同じエラーが発生しました。

最新バージョンの代わりにopenssl 0.13を使用して解決しました。

easy_install pyOpenSSL==0.13

また

pip install pyOpenSSL==0.13
于 2014-11-02T20:55:02.207 に答える
1

特に Windows を使用している場合は、conda代わりに を使用することを強くお勧めします。pipとりわけ、システムに適したバイナリ ファイルを取得します。科学的な Python 環境 (Scipy、Numpy、Pandas など) のセットアップが簡単になります。

したがって、 Anaconda を読み、 Anaconda をインストールしてから次のようにします。

conda create -n scrapyenv python=2  # creates a new py2 environment
activate scrapyenv                  # switch to the new environment
conda install scrapy                # install scrapy

手順 1 と 2 は、別の環境にカプセル化する場合にのみ必要です。ところで、そうすると、便利なパッケージのバッテリー全体がインストールされますconda install anaconda

さらに、conda含まれていない場合、pyOpenSSLまたはインストールしたくない場合はanaconda、チュートリアルHow to install Scrapy in 64bit Windows 7のポイント 9 を参照してください。

于 2014-06-21T14:04:44.703 に答える
0

私は同じ問題を抱えていて、最初の答えで解決しようとしましたが、うまくいきません。最後に、pyOpenSSL を削除し、pyopenssl セットアップをダウンロードします。そして、問題は解決しました。pyopenssl の URL は次のとおりです: https://launchpad.net/pyopenssl

于 2016-04-15T04:09:40.437 に答える
0

pipインストールする前にアップグレードする必要がありますScrapy:

pip install --upgrade pip
pip install Scrapy 
于 2016-07-10T21:09:16.420 に答える