Take the 2-minute tour ×

I'm writing a shell script which runs a command through ipython with the -c option like this:

ipython -c "from blah import myfunct; myfunct()"

but I want to invoke ipython through django's shell_plus command so I can take advantage of all the stuff shell_plus automatically loads for me:

$ ./manage.py shell_plus

I can't just add "-c ..." to the end of that because manage.py doesn't know what to do with it. Is there any way to pipe the -c option somehow?

share|improve this question
add comment

1 Answer

There are a couple of ways to do this.

  1. Modify manage.py and add the -c option and remove it from sys.argv after processing
  2. Modify manage.py and monkeypatch shell_plus so it supports -c by default
  3. Put your code in some file and call 'PYTHONSTARTUP=your_file ./manage.py shell_plus'
share|improve this answer
Note: Django checks to see if PYTHONSTARTUP is a file with os.path.isfile(pythonrc), which means that it will not expand the path. So if your PYTHONSTARTUP starts with ~ it will not be imported –  saul.shanabrook Jul 24 '12 at 15:29
add comment

Your Answer


