написание сценария ipython через shell_plus от django

#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:

Есть несколько способов сделать это.

  1. Изменение управления.выполните поиск и добавьте опцию -c и удалите ее из sys.argv после обработки
  2. Изменение управления.py и monkeypatch shell_plus, поэтому он поддерживает -c по умолчанию
  3. Поместите свой код в какой-нибудь файл и вызовите 'PYTHONSTARTUP=your_file ./manage.py shell_plus'

Комментарии:

1. Примечание: Django проверяет, PYTHONSTARTUP есть ли файл с os.path.isfile(pythonrc) , что означает, что он не будет расширять путь. Поэтому, если ваш файл PYTHONSTARTUP начинается с ~ , он не будет импортирован