2014-06-14 7 views
6

Sto eseguendo uno script python tramite un cronjob. Ho un ambiente virtuale e nel cronjob lo sto eseguendo attraverso questo ambiente virtuale. Quando eseguo lo script normalmente phantomJS si avvia come dovrebbe, ma eseguendolo attraverso uno script in un cronjob ricevo questo errore. Cosa manca nel cronjob per poter avviare phantomjs?Avvio di phantomJS da uno script in un cronjob

Message: 'Unable to start phantomjs with ghostdriver.' ; Screenshot: available via screen 
Traceback (most recent call last): 
    File "/home/scraper/superfish-extension/chrome_3day.py", line 96, in <module> 
    main() 
    File "/home/scraper/superfish-extension/chrome_3day.py", line 73, in main 
    browser = use_phantomjs() 
    File "/home/scraper/superfish-extension/chrome.py", line 81, in use_phantomjs 
    browser = webdriver.PhantomJS() 
    File "/home/scraper/.virtualenvs/superfish/lib/python2.6/site-packages/selenium/webdriver/phantomjs/webdriver.py", line 50, in __init__ 
    self.service.start() 
    File "/home/scraper/.virtualenvs/superfish/lib/python2.6/site-packages/selenium/webdriver/phantomjs/service.py", line 69, in start 
    raise WebDriverException("Unable to start phantomjs with ghostdriver.", e) 
WebDriverException: Message: 'Unable to start phantomjs with ghostdriver.' ; Screenshot: available via screen 

risposta

12

Come fantasma è probabilmente installato in /usr/local/bin, si dovrebbe aggiungere che dir PATH nel vostro crontab. Il seguente dovrebbe fare il trucco:

SHELL=/bin/sh 
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin 
3

Come alternativa alla risposta accettata, è possibile aggiungere la seguente riga alla prima linea di crontab:

PHANTOMJS_EXECUTABLE=/usr/local/bin/phantomjs 

che specifica il percorso di PhantomJS prima di eseguire cron compiti.

1

che ha fatto il trucco per me:

#!/bin/bash 
export DISPLAY=:0 
/usr/bin/phantomjs /home/pi/test.js 
+0

Perché questo codice-unica risposta il lavoro? Spiegazione necessaria – ppperry