我正在尝试在Enthought Canopy Python发行版中使用scrapy。我安装了scrapy,但在尝试导入时,我得到了TypeError
TypeError Traceback(最近一次调用最后一次) in() ----> 1进口scrapy
C:\ Users \ ad \ AppData \ Local \ Enthought \ Canopy \ User \ lib \ site-packages \ scrapy__init __。pyc in() 8#Scrapy版 9导入pkgutil ---> 10 版本 = pkgutil.get_data(包,'VERSION')。decode('ascii')。strip() 11 version_info = tuple(int(v)if v.isdigit()else v 12 for v in version .split('。'))
在get_data(包,资源)中的C:\ Users \ ad \ AppData \ Local \ Enthought \ Canopy \ App \ appdata \ canopy-1.4.1.1975.win-x86_64 \ lib \ pkgutil.pyc 576“”“ 577 - > 578 loader = get_loader(包) 579如果loader是None或者不是hasattr(loader,'get_data'): 580返回无
在get_loader(module_or_name)中的C:\ Users \ ad \ AppData \ Local \ Enthought \ Canopy \ App \ appdata \ canopy-1.4.1.1975.win-x86_64 \ lib \ pkgutil.pyc 462否则: 463 fullname = module_or_name - > 464返回find_loader(fullname) 465 466 def find_loader(fullname):
在find_loader(fullname)中的C:\ Users \ ad \ AppData \ Local \ Enthought \ Canopy \ App \ appdata \ canopy-1.4.1.1975.win-x86_64 \ lib \ pkgutil.pyc 473“”“ 474 for iter_importers(fullname)中的importer: - > 475 loader = importer.find_module(fullname) 476如果加载器不是None: 477返回装载机
TypeError:find_module()只需要3个参数(给定2个)
编辑:卸载旧版本并安装更新的版本。
答案 0 :(得分:0)
你是怎么安装scrapy的?它有许多依赖项,不包含在Canopy安装中。如果您是订阅者(付费或免费学术),您可以使用Canopy包管理器或enpkg
命令行实用程序从Canopy存储库安装预构建的scrapy;这会处理所有依赖项。 (刚刚在Canopy 1.5.1上测试过 - 在你运行的版本Canopy 1.4.1中也可能出现问题。在这种情况下,无论如何要获得许多改进,你可能想要卸载1.4。 1,从https://enthought.com/downloads下载1.5.1并安装它。通过在重新启动Canopy之前删除User Python目录(从输入{指向的那个)开始,从一组新的包开始是最干净的。 Canopy IPython窗格中的{1}}。)