Подтвердить что ты не робот

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

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

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

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

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

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

4b9b3361

Ответ 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' "