2014-12-10 2 views
0

방금 ​​scrapyd를 우분투에 설치했습니다 (apt-get 도구 사용). 그러나, 나는 시작하면, 구성 변경을하지 않고 "scrapyd"나는 다음과 같은 오류 있어요 :기본 구성으로 scrapyd 부팅이 실패했습니다. sqlite3.OperationalError : 데이터베이스 파일을 열 수 없습니다.

(! 397)-> scrapyd 
Unhandled Error 
Traceback (most recent call last): 
    File "/usr/lib/python2.7/dist-packages/twisted/application/app.py", line 642, in run 
    runApp(config) 
    File "/usr/lib/python2.7/dist-packages/twisted/scripts/twistd.py", line 23, in runApp 
    _SomeApplicationRunner(config).run() 
    File "/usr/lib/python2.7/dist-packages/twisted/application/app.py", line 376, in run 
    self.application = self.createOrGetApplication() 
    File "/usr/lib/python2.7/dist-packages/twisted/application/app.py", line 441, in createOrGetApplication 
    application = getApplication(self.config, passphrase) 
--- <exception caught here> --- 
    File "/usr/lib/python2.7/dist-packages/twisted/application/app.py", line 452, in getApplication 
    application = service.loadApplication(filename, style, passphrase) 
    File "/usr/lib/python2.7/dist-packages/twisted/application/service.py", line 405, in loadApplication 
    application = sob.loadValueFromFile(filename, 'application', passphrase) 
    File "/usr/lib/python2.7/dist-packages/twisted/persisted/sob.py", line 210, in loadValueFromFile 
    exec fileObj in d, d 
    File "/usr/lib/pymodules/python2.7/scrapyd/txapp.py", line 3, in <module> 
    application = get_application() 
    File "/usr/lib/pymodules/python2.7/scrapyd/__init__.py", line 14, in get_application 
    return appfunc(config) 
    File "/usr/lib/pymodules/python2.7/scrapyd/app.py", line 22, in application 
    poller = QueuePoller(config) 
    File "/usr/lib/pymodules/python2.7/scrapyd/poller.py", line 13, in __init__ 
    self.update_projects() 
    File "/usr/lib/pymodules/python2.7/scrapyd/poller.py", line 30, in update_projects 
    self.queues = get_spider_queues(self.config) 
    File "/usr/lib/pymodules/python2.7/scrapyd/utils.py", line 18, in get_spider_queues 
    d[project] = SqliteSpiderQueue(dbpath) 
    File "/usr/lib/pymodules/python2.7/scrapyd/spiderqueue.py", line 12, in __init__ 
    self.q = JsonSqlitePriorityQueue(database, table) 
    File "/usr/lib/pymodules/python2.7/scrapyd/sqlite.py", line 95, in __init__ 
    self.conn = sqlite3.connect(self.database, check_same_thread=False) 
sqlite3.OperationalError: unable to open database file 

Failed to load application: unable to open database file 

내가 파이썬 꽤 새로운 오전을, 나는 그것이 열려는 SQLite는 파일 이름을 인쇄하려고했지만 이 파일은 scrapy 사용자가 소유하고 있습니다. 또한 여기에 내 구성의 내용 :

(! 403)-> cat /etc/scrapyd/conf.d/000-default 
[scrapyd] 
http_port = 6800 
debug  = off 
#max_proc = 1 
eggs_dir = /var/lib/scrapyd/eggs 
dbs_dir = /var/lib/scrapyd/dbs 
items_dir = /var/lib/scrapyd/items 
logs_dir = /var/log/scrapyd 

누구에 대한 실마리가 있습니까? 감사.

+0

어떤 scrapyd 버전입니까? 그것은 최후의 것처럼 보이지 않습니다 ... 어쨌든, 문제는 scrapyd가 아니라 sqlite 일 수 있습니다. 다음 팁을 확인하십시오 : http://stackoverflow.com/a/4637055/2842884 – bosnjak

답변

0

Scrapyd 구성이 시스템 사용자가 사용할 적절한 권한이없는 파일 또는 폴더를 참조하고있는 것으로 의심됩니다.

  1. 변경 configuration file (/etc/scrapyd/scrapyd.conf)에서 dbs_dir 시스템 사용자가 액세스 할 수있는 위치에 :

    은이 문제에 적어도 세 가지 가능한 해결책이 있습니다.

  2. /var/lib/scrapyd/dbs의 사용 권한을 변경하여 사용자 또는 그룹이 액세스 할 수 있도록 허용하십시오.
  3. scrapyd을 다른 사용자, 수퍼 유저 또는 root로 실행하십시오.
+0

나는 # 2를했는데 모두가/var/lib/scrapyd/dbs /에 글을 쓰도록 허락했습니다! 감사! –