2013-03-19 1 views
2

나는 파이썬으로 들어가기 시작했다. 그렇다. 나는이 사이트와 웹에서 대답을 검색했지만 어쨌든 나는 그것을 실행할 수 없다.스크립트에서 스크립트 실행하기 (초보자)

spider/ebay.py에 상주하는 스파이더 클래스 EbaySpider를 만들었습니다. 아무런 문제없이 명령 줄에서 시작할 수 있습니다 (심지어 JSON 파일로 출력해도 됨). 이제 다른 .py 파일 내에서 치료를 시작하여 크롤링 된 데이터에 직접 액세스하여 GUI에 출력 할 수 있습니다 (나중에 수행하는 방법에 대해 생각할 것입니다).

내가 (내가 거미를 여러 번 실행할 필요가 없습니다 같이 askers 코드) this question의 코드를 촬영하고 처음에

from spiders import ebay 
from scrapy.crawler import CrawlerProcess 

를 추가 한 손에 필요한 모든 자원을 가지고하는 .

내가 오류는 'spiders.ebay'또는 '프로젝트 이름에'거미 '변경'EbaySpider '에서'이베이 '에서 변경, 당연히 나는 importstatement 주변에 연주 한

ImportError: cannot import name ebay.

입니다. spiders.ebay '하지만 어떻게 든 그들 중 누구도 작동하지 않는 것 같습니다.

이 문제를 해결하는 방법이나 스파이더를 실행 한 다음 파이썬 프로그램 내에서 크롤링 된 데이터에 액세스 할 수있는 다른 방법을 알려주는 것이 좋을 것입니다. 나는 잘 작동하고 반쯤 이해할 수있는 것에 만족합니다 :)

고마워요!

답변

0

전에 당신은 세 가지 옵션이 있습니다;

  • 는 스크립트와 같은 디렉토리에있는 'ebay.py'파일을 넣어 당신의 PYTHONPATH
  • 의 모듈과 '거미'디렉토리를 설치하고 단지 import ebay.
  • 파이썬 경로를 수정하면 파이썬이 스파이더를 찾을 수 있습니다.

세 번째 옵션의 경우 파일을 spiders 디렉토리에 만들어야합니다. 그것은 비어있을 수 있습니다. 에서

import os 
import sys 
sys.path.append(os.getcwd()+'/spiders') 
print sys.path 
from spiders import ebay 
+0

동일한 디렉토리에 복사하면 빠른 수정 작업이 가능합니다. 감사합니다! – SGer

0

python의 relative import 기능을 파이썬 스크립트에 상대적인 디렉토리에서 가져올 수 있습니다. 모듈 spiders이 (가) PYTHON_PATH이 아니기 때문에 모듈을 가져올 수없는 이유입니다.

from .spiders import ebay

참고 : 기본적으로 spiders

+0

결과 '에 ValueError : 비 패키지 시도 상대 수입' – SGer

+1

상대 수입에만 작동 그럼 당신은 (spiders이 프로그램이에서 실행중인 디렉토리의 서브 디렉토리가 있다고 가정) 다음과 같이 스크립트를 수정해야 패키지. –