2014-06-14 11 views
6

Bir cronjob aracılığıyla bir python betiği çalıştırıyorum. Sanal bir ortamım var ve cronjob'de bu sanal ortamda çalışıyorum. Ben betiği normal olarak çalıştırdığımda phantomJS gerektiği gibi başlar, ancak bir cronjob içinde bir betik üzerinden çalıştırdığımda bu hatayı alırım. Phantomjs başlatmak için cronjob içinde eksik nedir?Bir cronjob içinde bir komut dosyasından phantomJS başlatılıyor

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 

cevap

12

fantom muhtemelen /usr/local/bin yüklenir gibi, crontab içinde PATH o dir eklemek gerekir. hile yapmak gerekir şunlardır: kabul edilen yanıt alternatif olarak

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

, sen crontab'ın 1 satırına aşağıdaki satırı ekleyebilirsiniz: cron'u çalıştırmadan önce PhantomJS yolunu belirtir

PHANTOMJS_EXECUTABLE=/usr/local/bin/phantomjs 

görevler.

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

? Açıklama gerekli
+0

Neden bu kod sadece işi cevap vermez: Benim için hile yaptı – ppperry

İlgili konular