運行scrapy程序時候遇到的問題 :ImportError: cannot import name opentype


參考一篇大佬的博文:https://www.cnblogs.com/zlslch/p/8318942.html

問題:將scrapy 1.8 程序在win本地運行成功,但是在linux運行報以下錯誤:

2019-12-10 17:12:14 [twisted] CRITICAL:
Traceback (most recent call last):
  File "/apps/software/anaconda2/lib/python2.7/site-packages/twisted/internet/defer.py", line 1418, in _inlineCallbacks result = g.send(result) File "/apps/software/anaconda2/lib/python2.7/site-packages/scrapy/crawler.py", line 104, in crawl six.reraise(*exc_info) File "/apps/software/anaconda2/lib/python2.7/site-packages/scrapy/crawler.py", line 86, in crawl self.engine = self._create_engine() File "/apps/software/anaconda2/lib/python2.7/site-packages/scrapy/crawler.py", line 111, in _create_engine return ExecutionEngine(self, lambda _: self.stop()) File "/apps/software/anaconda2/lib/python2.7/site-packages/scrapy/core/engine.py", line 69, in __init__ self.downloader = downloader_cls(crawler) File "/apps/software/anaconda2/lib/python2.7/site-packages/scrapy/core/downloader/__init__.py", line 86, in __init__ self.middleware = DownloaderMiddlewareManager.from_crawler(crawler) File "/apps/software/anaconda2/lib/python2.7/site-packages/scrapy/middleware.py", line 53, in from_crawler return cls.from_settings(crawler.settings, crawler) File "/apps/software/anaconda2/lib/python2.7/site-packages/scrapy/middleware.py", line 34, in from_settings mwcls = load_object(clspath) File "/apps/software/anaconda2/lib/python2.7/site-packages/scrapy/utils/misc.py", line 46, in load_object mod = import_module(module) File "/apps/software/anaconda2/lib/python2.7/importlib/__init__.py", line 37, in import_module __import__(name) File "/apps/software/anaconda2/lib/python2.7/site-packages/scrapy/downloadermiddlewares/retry.py", line 22, in <module> from scrapy.core.downloader.handlers.http11 import TunnelError File "/apps/software/anaconda2/lib/python2.7/site-packages/scrapy/core/downloader/handlers/http11.py", line 22, in <module> from scrapy.core.downloader.tls import openssl_methods File "/apps/software/anaconda2/lib/python2.7/site-packages/scrapy/core/downloader/tls.py", line 4, in <module> from service_identity.exceptions import CertificateError File "/apps/software/anaconda2/lib/python2.7/site-packages/service_identity/__init__.py", line 7, in <module> from . import cryptography, pyopenssl File "/apps/software/anaconda2/lib/python2.7/site-packages/service_identity/pyopenssl.py", line 14, in <module> from pyasn1_modules.rfc2459 import GeneralNames File "/apps/software/anaconda2/lib/python2.7/site-packages/pyasn1_modules/rfc2459.py", line 23, in <module> from pyasn1.type import opentype ImportError: cannot import name opentype

以上報錯信息給的不完整,大佬從啟動過程中發現service_identity是報錯的最終原因。所以要善於使用報錯信息和日志信息。自己百度的答案也是安裝相關包:pip install -I -U service_identity 就能解決。

可以離線安裝:

根據提示,去下載和安裝service_identity,地址為:https://pypi.python.org/pypi/service_identity#downloads,下載whl文件

 

 

 離線安裝:

如果是whl格式的用:

pip install  service_identity-18.1.0-py2.py3-none-any.whl

 如果是tar.gz格式自己摸索

我用相同的方式安裝的scrapy , 都是用的yum install scrapy . 但是為什么會在另一台機器上出現報錯。可能在安裝的時候scrapy只會檢查有沒有這個模塊service_identity,而不會進行版本檢查以更新。

重新安裝即可:

pip install service_identity

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM