2013-12-13 2 views
0

Я пытаюсь вызвать скрипт python с контроллера.Ошибка ConfigParser при запуске скрипта python с контроллера контроллера RoR

Я определил функцию follwing в контроллере:

private 
    def update_product_count(skus, qty) 
     system "python2 /home/nish/stuff/repos/Untitled/voylla_staging_changes/app/models/ReviseItem.py 
skus qty > output" 
    end 

Вызов этой функции в другом методе одного и того же контроллера:

def show 
//some code 
update_product_count(@skus, @qty) 
end 

Когда я запускаю сценарий вручную, с моей консоли, он работает нормально. Но я получаю эту ошибку при запуске из контроллера:

Traceback (most recent call last): 
    File "/home/nish/stuff/repos/Untitled/voylla_staging_changes/app/models/ReviseItem.py", line 24, in <module> 
    devID = config.get("Keys", "Developer") 
    File "/usr/lib/python2.7/ConfigParser.py", line 607, in get 
    raise NoSectionError(section) 
ConfigParser.NoSectionError: No section: 'Keys' 
+0

система Постулаты «python2 /home/nish/stuff/repos/Untitled/voylla_staging_changes/app/models/ReviseItem.py SKUs кол-во> Выход» Shoule будет переписать в виде системы «python2/дома/Ниш/вещи/репо/Untitled/voylla_staging_changes/app/models/ReviseItem.py # {skus} # {qty}> output ". иначе вы выведете строку вместо фактического переданного значения. – nickcen

ответ

0

Наиболее вероятной причиной является то, что вы открываете файл конфигурации, используя относительный путь, и контроллер имеет другую текущую директорию на консоль.

Вы должны либо использовать абсолютный путь к конфигурационному файлу, либо выполнить скрипт в каталоге, в котором он выполняется, и добавить его к имени файла.

Смежные вопросы