Scrapy ImportError: No module named items
2817 단어 crawler
1. 문제 설명
scrapy crawl 명령을 실행하여 데이터를 추출할 때 코드에서 다음 오류가 발생했습니다.
ImportError: No module named items
그러나 분명히 우리 코드 안에는items와 같은 종류가 있다.그 문제는 어디에 나타날까요?만능의 Stack overflow에게 도움을 청하니 마침 이 문제가 언급되었다.
2. 문제 발생 원인
간단하게 말하자면 파충류의 이름은 프로젝트의 이름과 같아서 최종적으로 가져올 때 오류가 발생한다.
3. 솔루션
stackoverflow가 준 방안에는 세 가지가 있다.항목 이름 바꾸기 2.파충류의 명칭을 바꾸다.파충류의 코드에 넣기
from __future__ import absolute_import
앞의 두 가지 방안은 모두 프로젝트의 이름과 파충류의 이름이 일치하지 않도록 하기 위한 것이고, 뒤의 방안은 import의 방식을 바꾸기 위한 것이다.4.absolute_import 요약
from __future__ import absolute_import
이 import은 모든 가져오기를 절대 가져오기로 간주하는 것이 아니라, implicit relative import (은밀한 상대 가져오기) 를 사용하지 않지만,explicit relative import (상대 가져오기 보이기) 를 사용하지 않습니다.
그렇다면 도대체 무엇이 스텔스 상대 가져오기이고, 무엇이 표시된 상대 가져오기입니까?예를 들어 다음과 같은 패키지 구조를 가정해 보겠습니다.
thing
├── books
│ ├── adventure.py
│ ├── history.py
│ ├── horror.py
│ ├── __init__.py
│ └── lovestory.py
├── furniture
│ ├── armchair.py
│ ├── bench.py
│ ├── __init__.py
│ ├── screen.py
│ └── stool.py
└── __init__.py
books에서 bench를 참조하면 다음과 같은 몇 가지 방법이 있습니다.
import bench # implicit relative import
from . import bench # explicit relative import
from furniture import bench # absolute import
은식 상대는 해석기가 누구를 상대하는지 알려주지 않았지만 기본 상대는 현재 모듈과 같다.디스플레이 상대는 해석기가 누가 가져올지 명확하게 알려준다.상기 가져오기 방식의 세 번째는 공식적으로 추천한 것입니다. 첫 번째는 공식적으로 강력하게 추천하지 않는 것입니다. 파이톤3은 이미 폐기되었고 이런 방식은 path의 모듈을 가져오는 데만 사용할 수 있습니다.
참조 링크: 1.http://stackoverflow.com/questions/10570635/scrapy-importerror-no-module-named-items 2.http://kuanghy.github.io/2016/07/21/python-import-relative-and-absolute
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Instagram 계정의 Follower 크롤링Instagram 계정의 모든 팔로워 정보를 크롤링합니다. 공식 Instagram API에는 자신의 팔로워 목록을 얻는 API가 있지만 다른 팔로워 목록을 얻는 API는 없습니다. 그래서 이번에는 모든 계정의 팔로워...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.