2014-06-14 25 views
6

Używam skryptu Pythona przez cronjob. Mam wirtualne środowisko iw cronjobie używam tego wirtualnego środowiska. Kiedy uruchamiam skrypt normalnie phantomJS uruchamia się tak, jak powinien, ale uruchamiając go przez skrypt w cronjob dostaję ten błąd. Czego brakuje w cronjob, aby móc uruchomić phantomjs?Uruchamianie phantomJS ze skryptu w 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 

Odpowiedz

12

jako fantom jest prawdopodobnie zainstalowany w /usr/local/bin, należy dodać, że reż do PATH w crontab. Poniższy powinno załatwić sprawę:

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

Jako alternatywę do zaakceptowanej odpowiedzi, można dodać następujący wiersz na 1 linii crontab:

PHANTOMJS_EXECUTABLE=/usr/local/bin/phantomjs 

który określa ścieżkę PhantomJS przed uruchomieniem crona zadania.

1

że wystarczyły dla mnie:

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

Dlaczego tylko kodu Ta odpowiedź pracę? Potrzebne wyjaśnienie – ppperry