Importing Python module from Bash

alias, bash, linux, python

Solution

An easy way to do this is with the "code" module:

python -c "import code; code.interact(local=locals())"

This will drop you into an interactive shell when code.interact() is called. The `local` keyword argument to `interact` is used to prepopulate the default namespace for the interpreter that gets created; we'll use `locals()`, which is a builtin function that returns the local namespace as a dictionary.

Your command would look something like this:

python -c "import mymodule, code; code.interact(local=locals())"

which drops you into an interpreter that has the correct environment.

Problem

I am launching a Python script from the command line (Bash) under Linux. I need to open Python, import a module, and then have lines of code interpreted. The console must then remain in Python (not quit it). How do I do that? I have tried an alias like this one: ``` alias program="cd /home/myname/programs/; python; import module; line_of_code" ``` But this only starts python and the commands are not executed (no module import, no line of code treated). What is the proper way of doing this, provided I need to keep Python open (not quit it) after the script is executed? Many thanks!

Original source