У меня есть сценарий R, который можно выполнить в терминале с помощью Rscript app/myapp.R
. Сценарий R хранится в проекте пакета R, поэтому я могу воспользоваться документацией, инструментами проверки и модульного тестирования.
Просто для удобства использования мне было интересно, есть ли способ имитировать поведение python __main__.py
внутри модуля.
РЕДАКТИРОВАТЬ 01.06.2020: Мне действительно нужны другие пользователи, которые не привыкли к R, чтобы использовать скрипт. Поэтому, как только пакет установлен, поиск полного пути к скрипту для них не вариант.
В проекте Python, когда у меня есть следующая структура пакета:
mypackage
├── mymodule
│ ├── __init__.py
│ └── __main__.py
└── setup.py
Я могу сделать python -m mymodule
из любой папки в терминале при условии, что пакет действительно установлен в моей библиотеке Python. Команда выполнит mypackage/mymodule/__main__.py
.
Я хотел бы иметь такое же поведение для пакета R. Предположим, что пакет R mypackage
уже установлен в моей пользовательской библиотеке R. Я хотел бы иметь возможность запускать mypackage/app/myapp.R
из любого места в терминале (на самом деле, я бы хотел, чтобы другие могли установить пакет и запустить приложение без необходимости клонировать репозиторий).
я знаю, что я могу сделать
Rscript app/myapp.R
но это сработает, только если я cd
в path/to/mypackage
. Я хотел бы иметь возможность делать что-то подобное из любой точки терминала, если пакет установлен в пользовательской библиотеке R.
Rscript -m myapp
demo()
, похоже, создан для интерактивных сеансов, а мне нужен неинтерактивный сеанс.
myapp.r
было бы неудовлетворительным. - person IRTFM   schedule 31.08.2019