Я запускаю сценарий Python из командной строки (Bash) в соответствии с Linux. Я должен открыть Python, импортировать модуль, и затем интерпретировать строки кода. Консоль должна затем остаться в Python (не, выходит из него). Как я делаю это?
Я попробовал псевдоним как этот:
alias program="cd /home/myname/programs/; python; import module; line_of_code"
Но это только запускает Python, и команды не выполняются (никакой импорт модуля, никакая строка кода не рассматривала).
Каков надлежащий способ сделать это, если я должен сохранить Python открытым (не, выходит из него) после того, как сценарий выполняется?Большое спасибо!
Простой способ сделать это - с помощью модуля "code":
python -c "import code; code.interact(local=locals())"
Это перебросит вас в интерактивную оболочку при вызове code.interact(). Аргумент local
ключевого слова interact
используется для предварительного заполнения пространства имен по умолчанию для создаваемого интерпретатора; мы будем использовать locals()
, которая является встроенной функцией, возвращающей локальное пространство имен в виде словаря.
Ваша команда будет выглядеть примерно так:
python -c "import mymodule, code; code.interact(local=locals())"
что приведет вас в интерпретатор с правильным окружением.
Пример:
python -c "import time ; print 'waiting 2 sec.'; time.sleep(2); print 'finished' "
использовать подпрограмму вместо псевдонима
callmyprogram(){
python -i -c "import time;print time.localtime()"
}
callmyprogram