2016-07-06 3 views
0

나는 Scrapy를 배우기 시작했지만 ipython에 기본 셸을 설정할 수없는 이상한 지점에 갇혔다. 내 노트북의 운영 체제는 우분투 15.10입니다. 나는 또한 ipython과 치료법을 설치했다. 오류가 발생하지 않고 잘 실행됩니다.기본 셸에 대한 전역 설정을 구성하는 방법

는 Scrapy의 official tutorial에 따르면, 나는 문제는 내가 구성 파일을 찾을 수있는 글로벌 구성 파일

[settings] 
shell = ipython 

이를 입력하여 내 기본 scrapy 쉘을 변경할 수 있습니다. 나는 another page에서 지시에 따라 시도했다.

내가

  1. /etc/scrapy.cfg에이 세 가지 설정 파일을 만든 (시스템 전체),
  2. ~/.config/scrapy.cfg ($ XDG_CONFIG_HOME) 및 글로벌 (사용자 와이드) 설정에 대한 ~/.scrapy.cfg의 ($ HOME).

하지만 전혀 도움이되지 않았습니다.

어떻게해야합니까?


나는 첫 번째 대답에서 paul trmbrth의 지시를 따랐습니다. 그래도 여전히 문제가있는 것 같습니다. enter image description here

올바른 설정 파일이있는 것처럼 보입니다. 그러나 스크린 샷에서 볼 수 있듯이 ipython으로 scrap shell을 열 수는 없습니다. 어떤 생각이있어?

답변

1

scrapy shell에서 사용하는 셸을 구성 (또는 테스트)하는 또 다른 방법은 SCRAPY_PYTHON_SHELL environment variable입니다.

그래서 실행 :

[email protected]:~$ SCRAPY_PYTHON_SHELL=ipython scrapy shell 

당신이있을 수 있습니다 *scrapy.cfg에서 어떤 설정을 첫 번째 선택으로 ipython을 사용합니다. scrapy이 설정 파일을 찾는 위치를

확인하고, 무엇을 발견, 당신은 python 인터프리터를 시작하고 what scrapy shell does 실행 프로젝트의 내부에있는 경우

$ python 
Python 3.5.1+ (default, Mar 30 2016, 22:46:26) 
[GCC 5.3.1 20160330] on linux 
Type "help", "copyright", "credits" or "license" for more information. 

>>> from scrapy.utils.conf import get_config, get_sources 
>>> get_sources() 
['/etc/scrapy.cfg', 'c:\\scrapy\\scrapy.cfg', '/home/paul/.config/scrapy.cfg', '/home/paul/.scrapy.cfg', ''] 

>>> cfg = get_config() 
>>> cfg.sections() 
['deploy', 'settings'] 
>>> cfg.options('settings') 
['shell'] 
>>> cfg.get('settings', 'shell') 
'bpython' 
+0

당신의 대답은 정말 도움이되었고 고맙습니다. 그래도 ipython으로 scrap shell을 열 수는 없습니다. –

+0

envvar "트릭"이 작동하지 않습니까? –

+0

'ipython'을 실행할 때 콘솔에 특별한 내용이 인쇄되어 있습니까? 당신은'bpython'을 설치하고'shell = bpython'으로 테스트 할 수 있습니까? –

0

은이를 사용할 수 있습니다

를 프로젝트의 외부에있는 경우
from scrapy.utils.project import get_project_settings 

settings = get_project_settings() 

settings.get('IMPORT_API_URL') 

, 당신은이를 사용할 수 있습니다

from scrapy.settings import Settings 

settings = Settings() 

settings_module_path = os.environ.get('SCRAPY_ENV', 'project.settings.dev') 
settings.setmodule(settings_module_path, priority='project') 

settings.get('BASE_URL') 
관련 문제