Импорт модуля Python из Bash

Я запускаю Python script из командной строки (Bash) под Linux. Мне нужно открыть Python, импортировать модуль, а затем интерпретировать строки кода. Затем консоль должна оставаться на Python (не выходить из нее). Как это сделать?

Я пробовал псевдоним вроде этого:

alias program="cd /home/myname/programs/; python; import module; line_of_code"

Но это только запускает python, и команды не выполняются (без импорта модуля, без обработки кода).

Каков правильный способ сделать это, если мне нужно оставить Python открытым (не выходить из него) после выполнения script? Большое спасибо!

Ответ 1

Легкий способ сделать это с помощью модуля "code":

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

Это выведет вас в интерактивную оболочку при вызове code.interact(). Аргумент local ключевого слова interact используется для предварительного заполнения пространства имен по умолчанию для создаваемого интерпретатора; мы будем использовать locals(), который является встроенной функцией, которая возвращает локальное пространство имен в качестве словаря.

Ваша команда будет выглядеть примерно так:

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

который помещает вас в интерпретатор, который имеет правильную среду.

Ответ 2

используйте подпрограмму вместо псевдонима

callmyprogram(){
  python -i -c "import time;print time.localtime()"
}
callmyprogram

Ответ 3

Пример:

python -c "import time ; print 'waiting 2 sec.'; time.sleep(2); print 'finished' "