mac - scrapy python 3
Instalar dependencias de paquete para Scrapy (4)
Recomiendo usar conda
lugar de pip
, especialmente cuando se usa Windows. Entre muchas otras cosas, tomará los archivos binarios apropiados para su sistema. Hace que crear un entorno científico python (piense en Scipy, Numpy, Pandas ...) sea muy sencillo.
Entonces, lea en Anaconda , instale Anaconda , luego haga:
conda create -n scrapyenv python=2 # creates a new py2 environment
activate scrapyenv # switch to the new environment
conda install scrapy # install scrapy
Los pasos uno y dos solo son necesarios si lo quiere encapsular en un entorno separado. Por conda install anaconda
una batería completa de paquetes útiles si usted conda install anaconda
.
Además, en caso de que conda
no incluya pyOpenSSL
o NO desee instalar anaconda
consulte el punto 9 del tutorial Cómo instalar Scrapy en Windows 7 de 64 bits .
Entonces, entre los muchos paquetes que los usuarios deben instalar para Scrapy, creo que estoy teniendo problemas con pyOpenSSL.
Cuando trato de crear un proyecto tutorial de Scrapy, obtengo el siguiente resultado:
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
Y cuando busqué en Google ese último error (sin módulo llamado cryptography.hazmat), veo un par de menciones de pyOpenSSL. Así que seguí adelante y traté de ejecutar easy_install pyOpenSSL==0.14
para asegurarme de que sea la versión más reciente, pero cuando lo hago obtengo esta salida:
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
Así que estoy un poco perdido en cuanto a lo que debo hacer para que Scrapy funcione correctamente
Tengo el mismo error en Mac OS.
Lo resolví usando openssl 0.13 en lugar de la última versión.
easy_install pyOpenSSL==0.13
o
pip install pyOpenSSL==0.13
Tengo los mismos problemas y trato de resolverlos con la primera respuesta, pero no funciona. Al final, elimino el pyOpenSSL y descargo el pyopenssl, setup. Y el problema está resuelto. La URL de pyopenssl es: https://launchpad.net/pyopenssl
Debe actualizar pip
antes de intentar instalar Scrapy
:
pip install --upgrade pip
pip install Scrapy