Добавление Python-скрипта в Ruby Gem - PullRequest
0 голосов
/ 05 апреля 2019

У меня есть программа Ruby, которая собирает данные в дружественном формате json.Затем я передаю эти данные в скрипт Python, вызывая

`python3 py_script.py #{my_data}`

из кода Ruby.

Это хорошо работает при запуске сценария Ruby из того же каталога, что искрипт python.Короче говоря, я хотел бы упаковать это в гем, но после сборки и установки гема, когда я пытаюсь запустить его, Ruby ищет файл python относительно того, где находится текущий путь оболочки, а не из структуры, указанной вgemspec, это именно то, что он делает, когда просто запускает скрипт Ruby напрямую.

Я новичок в Ruby, так что это совершенно неожиданное поведение.Есть ли простой способ сделать эту работу?Или, может быть, другой метод, который я только что пропустил в своем поиске?

Для чего я попробовал несколько способов вызова скрипта Python, используя exec, Process.spawn, open3, system и т. Д.

1 Ответ

1 голос
/ 05 апреля 2019

Ruby всегда будет иметь путь к текущему сценарию в __FILE__ и путь к его каталогу в __dir__. Таким образом, это легко исправить:

`python3 #{__dir__}/py_script.py #{my_data}`

(Очевидно, вы можете изменить путь, чтобы он соответствовал структуре вашего драгоценного камня. Обратите внимание, что это путь к файлу, в котором он содержится, а не к вершине вашего драгоценного камня.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...