#linux #django #shell #ipython
#linux #django #оболочка #ipython
Вопрос:
Я пишу сценарий оболочки, который запускает команду через ipython с опцией -c, подобной этой:
ipython -c "from blah import myfunct; myfunct()"
но я хочу вызвать ipython через команду shell_plus от django, чтобы я мог воспользоваться всеми преимуществами, которые shell_plus автоматически загружает для меня:
$ ./manage.py shell_plus
Я не могу просто добавить «-c …» в конец этого, потому что manage.py не знает, что с этим делать. Есть ли какой-нибудь способ каким-то образом передать опцию -c?
Ответ №1:
Есть несколько способов сделать это.
- Изменение управления.выполните поиск и добавьте опцию -c и удалите ее из sys.argv после обработки
- Изменение управления.py и monkeypatch shell_plus, поэтому он поддерживает -c по умолчанию
- Поместите свой код в какой-нибудь файл и вызовите
'PYTHONSTARTUP=your_file ./manage.py shell_plus'
Комментарии:
1. Примечание: Django проверяет,
PYTHONSTARTUP
есть ли файл сos.path.isfile(pythonrc)
, что означает, что он не будет расширять путь. Поэтому, если ваш файлPYTHONSTARTUP
начинается с~
, он не будет импортирован