Linux bash run python

Run Python Scripts in Linux Command Line

This quick tip shows how to run Python programs from the Linux command line.

If you want to do something, it is pretty much guaranteed that there is a Python script for it. So, when you have a Python script, how do you run it?

The simplest way is to use the python or python3 command in the following manner:

Some distributions have used python2 as python and have an explicit command python3 for python3. So if you want Python 3 to be guaranteed, use python3 .

Method 1: Run it using python

The easiest method to run a Python script on any Linux distribution is by invoking the python command and provide it with the name of your Python script.

This will ensure that if the file’s contents are valid, it will be executed without any problems.

Method 2: Make Python script executable

You may have encountered executing bash scripts simply by typing out their relative/absolute path in the terminal. i.e. you never had to do a bash .sh like you do with Python scripts by typing python .py

Читайте также:  Java script eval function

In order to achieve this, a few things should be done first.

If you might have noticed, the bash scripts that you can execute by simply typing out their relative/absolute path, they are «executable» files.

To make your Python script executable, run the following command in your terminal:

This should be it. Right? I have a file hello.py , let’s try running it.

$ cat hello.py print("Hello Linux Handbook!") $ chmod +x hello.py $ ./hello.py ./hello.py: 1: Syntax error: word unexpected (expecting ")")

Uh oh. What? Syntax error? But it is a valid Python program/script.

The reason why we got this error is because by making hello.py an executable file, all we did was tell the shell that «You can execute it», but not what interpreter/program to use when it is being executed.

My shell (bash) thought that it was a bash script. And hence, we got this error.

The solution to overcome this is pretty simple. Add the following line to the first line of your Python script.

The #! syntax is used mostly in scripts (where you need an interpreter). Now, the /usr/bin/env part means that we are calling env to find the python command from $PATH and execute it for us.

This essentially starts Python for us, instead of the user needing to invoke it manually every time. And, if you don’t automate these things, are you even scripting?

Another reason to use env in shebang is to make it portable. Some systems have the Python executable interpreter stored as /usr/local/bin/python , while some might have /usr/bin/python .

Now, let’s try executing hello.py once again, but with the necessary changes made to it.

$ sed -i '1 i\#!/usr/bin/env python\n' hello.py $ cat hello.py #!/usr/bin/env python print("Hello Linux Handbook!") $ ./hello.py Hello Linux Handbook!

Oh hey! It runs flawlessly now.

Now that you know how to run Python programs from the terminal, how about learning to use Linux commands from Python scripts?

Источник

Запуск python скрипта в Linux

Python — очень популярный язык программирования для написания различных системных скриптов в Linux. В Windows, там где не хватает возможностей командной оболочки используется PowerShell. В Linux же, когда возможностей Bash не хватает используется язык Python.

На этом языке написано огромное количество системных программ, среди них пакетный менеджер apt, видеоредактор OpenShot, а также множество скриптов, которые вы можете установить с помощью утилиты pip. В этой небольшой статье мы рассмотрим как запустить Python скрипт в Linux с помощью терминала различными способами.

Запуск python скрипта в Linux

Для примера нам понадобится Python скрипт. Чтобы не брать какой-либо из существующих скриптов, давайте напишем свой:

Для того чтобы запустить скрипт необходимо передать его интерпретатору Python. Для этого просто откройте терминал с помощью сочетания клавиш Ctrl + Alt + T, перейдите в папку со скриптом и выполните:

Если вы хотите, чтобы после выполнения скрипта открылась консоль, в которой можно интерактивно выполнять команды языка Python используйте опцию -i:

Но как вы могли заметить, при запуске apt или openshot не надо писать слово python. Это намного удобнее. Давайте разберемся как это реализовать. Если вы не хотите указывать интерпретатор в командной строке, его надо указать в самом скрипте. Для этого следует в начало скрипта добавить такую строчку:

Сохраните изменения, а затем сделайте файл скрипта исполняемым с помощью такой команды:

После этого можно запустить скрипт Python просто обращаясь к его файлу:

Если убрать расширение .py и переместить скрипт в каталог, находящийся в переменной PATH, например /usr/bin/, то его можно будет выполнять вот так:

Как видите, запуск команды python Linux выполняется довольно просто и для этого даже есть несколько способов. А каким способом пользуетесь вы? Напишите в комментариях!

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Похожие записи

Оцените статью

Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .

Об авторе

Основатель и администратор сайта losst.ru, увлекаюсь открытым программным обеспечением и операционной системой Linux. В качестве основной ОС сейчас использую Ubuntu. Кроме Linux, интересуюсь всем, что связано с информационными технологиями и современной наукой.

10 комментариев к “Запуск python скрипта в Linux”

В python не ставится точка с запятой после операторов. Ещё в большинстве дистрибутивов установлены две версии python, 2.7 и 3. Команда python script.py запустит скрипт в версии python 2.7, комнада
python3 script.py в верси 3 Ответить

Привет.
А можно кто-то написать скрипт чтобы автоматизировать подключение к VPN?
Сейчас мне надо в терминале выполнять команды:
cd Folder/Folder
—config file.ovpn
Потом в терминале запрашивается имя пользователя. После успешного ввода запрашивается пароль.
Пока мне не удалось найти решение чтобы запуском скрипта вводились команды, а потом логин и пароль.
Может кто-то подскажет?
Использую Линукс (Федору) 3й день. До этого не сталкивался )
Спасибо. Ответить

Часто используют виртуальные окружения, которые пользователь создает под своим акаунтом.
В этом окружении устанавливаются необходимая версия python (может отличаться от общесистемной) и модули. Когда нужно запустить такой скрипт, в самом начале (указатель на интерпретатор) пишется примерно так:
#!/home//.virtualenvs//bin/python3
что как мне кажется неудобно, особенно если нужно поделиться скриптом с кем-то еще по команде. Поделитесь более интересными способами запуска .py скриптов из виртуальных окружений ? Ответить

Это кому не хватает возможности BASH?? Тому кто его не знает. BASH намного мощнее и удобнее кривого и тормозного пайтона. Единственный недостаток BASH он как и C не для школяров, а для серьёзных дядек. Ответить

Источник

Как запустить небольшой код Python в Bash

Bash — это не только и даже не столько встроенные функции оболочки сколько программы (утилиты) командной строки. Запуская эти команды и передавая полученные данные конвейеру (по трубе) можно автоматизировать самые различные вещи, на программирование которых в других языках программирования может понадобиться очень много усилий.

Эта заметка расскажет, как запустить код Python в Bash, а также как в скрипте Bash запустить выполнение программы на Python

Как выполнить код Python в Bash

В командной строке Bash для выполнения кода используйте конструкцию вида:

Ещё один вариант, который может пригодиться в более экзотических обстоятельствах:

bash -c 'python -c "print (\"КОД\")"'
bash -c 'python -c "print (\"It works\")"'

Как в скрипте Bash запустить программу на Python

Для выполнения программы Python в скрипте Bash используйте команду вида:

python СКРИПТ.py АРГУМЕНТ1 АРГУМЕНТ2 АРГУМЕНТ3

Пример запуска скрипта extractor.py с передачей ему двух аргументов: значение переменной $line и 8080:

python extractor.py $line 8080

Как в скрипте Bash запустить программу на Python и присвоить её вывод переменной

Если вам нужно запустить скрипт Python, а затем вывод программы присвоить переменной Bash, то используйте конструкцию вида:

ПЕРЕМЕННАЯ=`python СКРИПТ.py АРГУМЕНТ1 АРГУМЕНТ2 АРГУМЕНТ3`
response=`python extractor.py $line 8080 2>/dev/null | sed -E "s/\/\/.+:/\/\/$line:/"`

Как в скрипт Bash встроить код Python

Если код Python невозможно использовать в одной строке и вы не хотите использовать для вызова внешний скрипт, тогда вам подойдёт следующая конструкция:

Там где КОД вставьте код Python.

Данный пример является рабочим:

#!/bin/bash value="I will be in the script!" script=`cat 

Ещё один вариант этой конструкции:

И ещё один вариант, в котором вывод присваивается в качестве значения переменной ABC:

Источник

Оцените статью