Name: [709] Jeff Rush
Member: 111 months
Authored: 15 videos
Description: Greetings. I'm the (former) Python Advocacy Coordinator and a strong supporter of screencasts. I'm also the organizer of the Dallas-Ft. Worth Pythoneers and was con chair for PyCon 2006 and 2007 in Dallas. I'm also an independent consultant and work in the areas of Python/Zope, embedded Linux s ...

The 'IPython' Interactive Shell - Part 2 [ID:322] (2/5)

in series: A Demonstration of the 'IPython' Interactive Shell

video tutorial by Jeff Rush, added 07/07

(Showmedo is undergoing major changes. To report any problems viewing the videos please email us and include browser and OS specifics. Cheers - Kyran.)

A usage walkthru showing the use of the enhanced interactive shell named IPython. Divided into five parts, this talk in the series will cover directory navigation, system shell commands and the running of Python programs.

This series is a follow-on to the talk "5-Minutes with Python and the Interactive Shell 'IPython'" which gave an overview as a slideshow of the features of IPython.

Got any questions?

Get answers in the ShowMeDo Learners Google Group.

Video statistics:

  • Video's rank shown in the most popular listing
  • Video plays: 99 (since July 30th)
  • Plays in last week: 3
  • Published: 109 months ago

Thank-yous, questions and comments

If this video tutorial was helpful please take some time to say thank-you to the authors for their hard work. Feel free to ask questions. Let the author know why their video tutorial was useful - what are you learning about? Did the video tutorial save you time? Would you like to see more?

You may also want to see our ShowMeDo Google Group to speak to our active users and authors.

Your email address will not be published.

Show some quick comments >>

All comments excluding tick-boxed quick-comments

28. Sat, 09 Oct 2010 17:07

Thank you! Your IPython videos help me more than other IPython docs.

I wonder why on my Win XP help(somefunction) leads to an error: The command "more" cannot be found. Why isn't the function ttypager used instead? Is this a bug in Python?

Anyway, that's my prolem, not yours! I thank you for your video!!

27. Mon, 28 Jun 2010 11:50

Thanks! I wanted to find out more about IPython and your demos are nice examples of how an experienced user wields this powerful tool. Great for a newbie to learn from. Experienced users would also probably learn a thing or two.

26. AlysonSl Mon, 14 Jun 2010 15:22

I appreciate very much your IPython videos. Thanks a lot, they're so useful!

25. cheap christian louboutin Thu, 13 May 2010 02:18

Very interesting screencast, good speed of progress, doesnt get boring neither is too challenging.

I am a perl berginner to intermediate programmer and interested python beginner. Really enjoyed watching it, keep the good work up!

24. Arlenefund Sun, 18 Apr 2010 21:55

thanks for your kindness.

I download ipython before, but i don't know what's ipython avantage. And now i get it. Thanks again.

23. mbt 2000 vs t90 Mon, 22 Mar 2010 14:21

Nicely done Jeff. To the point and well organized.

22. Denver Cleaning Services, Denver Maid Service Fri, 12 Feb 2010 06:14


21. anonymous Wed, 30 Dec 2009 05:51

this popup is gay

20. anonymous Fri, 18 Dec 2009 05:35

I've been a python user since 1999, but for some reason have never got to grips with the ipython shell. The book Python for unix an dlinux system administration got me interested. I can't tell you the number of scripts I have written just to open a simple file from the command line and do some per line manipution. Being able to freely mix python and the command line is pretty exciting, I'm really enjoying your tutorial videos on this, thanks!

19. anonymous Wed, 16 Dec 2009 16:13

Great presentations! I can't wait to see the rest!

18. anonymous Fri, 04 Dec 2009 12:55

i have so far scanned the first video, meaning, i loaded the flash? and jumped around with the pointer. . I would have liked a quick and complete.overview of ipython. I use windows. If I am not using idle, I get stuck with --more--. I also do not get autocompletion which I rely on in idle. i will look at your second video.

Thank you for the video.

17. anonymous Wed, 02 Dec 2009 06:49

Fantastically helpful! Thank you for these videos. I'm a physicist and therefore am faking it in coding, but have found python fantastic, and can't believe I'm only discovering ipython now! Your videos are making the transition that much easier.

16. anonymous Fri, 13 Nov 2009 11:03


The function defined at 8:20 in video 2/5 doesn't work for me. No matter what values are passed in the previously held session value of patt is used.

patt = *.py

def go(patt=patt):

!ls -l $patt

Calling this as go() or go("*.so") as suggested in the video always lists only those files which match *.py even though there are files which match *.so in the directory and they can be listed easily with ls *.so

Any ideas why?


Also, pushd pushes the current directory on to the stack then changes to the argument.

15. anonymous Tue, 10 Nov 2009 13:53

Re comment 12 ... exactly my experience

Also, pushd pushes the current directory on to the stack then changes to the argument.

14. anonymous Fri, 06 Nov 2009 21:51


13. anonymous Fri, 06 Nov 2009 19:57

Trying to get to the heart of what was going on with global/local scope of variables in the example at 8:20 I tried to recast the function as follows only to be given a NameErorr: name is not defined. I'd really appreciate a pointer as to where I'm going wrong here.

In [1]: def go(regpat="*.py"):

...: !ls -l $regpat



In [2]: go()


NameError Traceback (most recent call last)

/home/ush/webwork/<ipython console>

/home/ush/webwork/<ipython console> in go(regpat)

/usr/lib/python2.4/site-packages/IPython/iplib.pyc in <lambda>(cmd)

495 # The first is similar to os.system, but it doesn't return a value,

496 # and it allows interpolation of variables in the user's namespace.

--> 497 self.system = lambda cmd: \

498 self.hooks.shell_hook(self.var_expand(cmd,depth=2))


/usr/lib/python2.4/site-packages/IPython/iplib.pyc in var_expand(self, cmd, depth)

628 self.user_ns, # globals

629 # Skip our own frame in searching for locals:

--> 630 sys._getframe(depth+1).f_locals # locals

631 ))


/usr/lib/python2.4/site-packages/IPython/Itpl.pyc in __str__(self)

258 def __str__(self):

259 """Evaluate and substitute the appropriate parts of the string."""

--> 260 return self._str(self.globals,self.locals)


262 def __repr__(self):

/usr/lib/python2.4/site-packages/IPython/Itpl.pyc in _str(self, glob, loc)

208 for live, chunk in self.chunks:

209 if live:

--> 210 val = eval(chunk,glob,loc)

211 try:

212 app(str(val))


NameError: name 'regpat' is not defined

12. anonymous Fri, 06 Nov 2009 13:17

The function defined at 8:20 in video 2/5 doesn't work for me. No matter what values are passed in the previously held session value of patt is used.

patt = *.py

def go(patt=patt):

!ls -l $patt

Calling this as go() or go("*.so") as suggested in the video always lists only those files which match *.py even though there are files which match *.so in the directory and they can be listed easily with ls *.so

Any ideas why?

11. anonymous Wed, 26 Aug 2009 06:13

Great tutorial, thanks!

10. anonymous Tue, 07 Jul 2009 10:39

great ipython sessions

9. anonymous Sun, 19 Apr 2009 10:06

Good. Glad to learn of IPython.

8. anonymous Sun, 19 Apr 2009 02:16


4. anonymous Sun, 01 Feb 2009 15:05

I'm sure that I'll end up coming back over and over to this series (there's waaaaay too much good stuff in here to be able to digest it all in a single run through).

One thing I take issue with, and this has NOTHING to do with the series itself, is the annoying crap that comes after the end of the video: on Firefox 3.0.5 on Ubuntu when the video completes Showmedo autoloads an ad for the SMD Club and then switches to a bit of Nagware asking for comments on the just watched vids ... so to get BACK to the video I just watched I need to *refresh my browser* and this is Bloody Obnoxious! It means that I need to stop the video before it completes if I want to go back and rewatch parts of it (and with a series as dense with detailed info as this that's pretty much a given)

The Nagware is also responsible for the fact that 90% of the comments are worthless '--you get my vote!' nonsense that might just as well be Spam. I honestly cannot see how these auto-comments are doing anyone any good: with the signal to noise ratio so skewed how does any author hope to see any useful feedback??

Please consider killing the 'quick comment' nagware and adjusting your 'club' ads to play ONCE on completion?

3. anonymous Thu, 17 Jan 2008 13:58

Very well done. Ipython is great buit hard to grok only by text ! Thank you

2. anonymous Sat, 08 Dec 2007 22:39

these are great; some brief companion notes would help as well. it is hard to reremember everything that was demonstrated.

Nice tutorial

Showmedo is a peer-produced video-tutorials and screencasts site for free and open-source software (FOSS)- with the exception of some club videos, the large majority are free to watch and download.

how to help » about » faq »

Educating the Open-source Community With Showmedo

Although as important as the software it supports, education and documentation are relatively neglected in the Open-source world. Coders love to code, and explaining how best to use or improve the software tends to be deferred or even sidelined.

At Showmedo we believe the community can play a vital role here and also say thanks for the tools and software that make our lives easier. If you have a piece of software you love or a programming langugage you are enthusiastic about, why not make a screencast showing others how to use it? All the stuff you wish you'd been told, the tips, tricks, insights that would have saved you time and frustration.

Screencasting is easier than you think, and we're happy to help you. You can emailus for advice or just use some of the how-to screencasts on the site. This screencasting learning-pathis a good place to start.

Kudos and Thanks for Jeff



Showmedo's development is fairly rapid and bugs will inevitably creep in. If you have any problems please drop us a line using the contact address below. Likewise, any suggestions for improvements to the site are gratefully received.