Как сделать питон файл исполняемым линукс

Как сделать файл исполняемым в Linux

Операционная система Linux, в отличие от Windows, определяет какие файлы являются программами не по расширению, а по специальному флагу исполняемости. У каждого файла есть три основных флага, чтение, запись и исполнение. Они определяют что система может делать с этим файлом.

Когда вы загружаете различные установщики программ из интернета или создаете скрипт в текстовом редакторе, для них устанавливаются флаги по умолчанию — только чтение и запись. Вы не сможете запустить такой файл как программу, с ним нужно сделать еще кое-что. В этой статье мы рассмотрим как сделать файл исполняемым в Linux.

Что такое исполняемость?

Уже много написано о том, как установить флаг исполняемости. Но что происходит с файлом во время этого, что такое исполянемость и как это работает?

Программа — это набор инструкций, которые по очереди выполняет процессор над данными, чтобы получить определенный результат. Но это вы, наверное, уже знаете.

На самом деле для процессора нет разницы между данными и инструкциями. И те и другие состоят из байт, проще говоря цифр. Когда-то договорились, что определенные сочетания цифр будут означать то или иное действие процессора, а во всем остальном это те же данные. Поэтому для процессора нет никакой разницы что выполнять — исполняемый файл linux или обычный текстовый файл. Оба могут быть успешно выполнены, вот только во втором варианте инструкции не имеют никакого смысла.

Чтобы система могла определить какие файлы нужно выполнять, а какие лучше не надо и был придуман флаг исполняемости. По сути, флаг исполяемости — это несколько байт в файловой системе, которые говорят нужно выполнять файл или нет, само содержимое файла никак не изменяется. Со скриптами все работает точно так же, только команды из файла выполняет не процессор, а интерпретатор, например, в bash скриптах — сама оболочка bash. Да и в обычных программ тоже есть свой загрузчик — это ld-linux.so.2.

Как сделать файл исполняемым в Linux?

В операционной системе Linux, для управления флагами файлов используется утилита chmod. Синтаксис вызова утилиты:

$ chmod категория действие флаг адрес_файла

  • Категория — флаги могут устанавливаться для трех категорий: владельца файла, группы файла и всех остальных пользователей. В команде они указываются символами u (user) g (group) o (other) соответственно.
  • Действие — может быть + (плюс), что будет значить установить флаг или — (минус) снять флаг.
  • Флаг — один из доступных флагов — r (чтение), w (запись), x (выполнение).

Например, чтобы сделать исполняемый скрипт в linux для владельца файла, достаточно выполнить:

chmod u+x адрес_файла

Этого в большинстве случаев бывает достаточно, но если мы хотим чтобы файл могли выполнять и другие пользователи, нужно указать также другие категории: g и o:

chmod ugo+x адрес_файла

Посмотреть флаги в терминале можно с помощью утилиты ls:

ls -l каталог_с_файлами

Это значит, что все флаги включены для всех категорий. Первое rwx — флаги владельца, второе — группы, а третье — для всех остальных. Если флаг не установлен, на его месте будет прочерк.

Снять флаг исполняемого файла очень просто. Используется та же команда только со знаком минус:

chmod u-x адрес_файла

Как установить фалг исполняемости в GUI

Вы можете сделать файл исполняемым в linux не только через терминал. Такая функциональность есть во всех файловых менеджерах. Возможно, на первых порах это будет для вас проще. Рассмотрим на примере файлового менеджера GNOME, Nautilus. Кликните правой кнопкой по нашему файлу программы или скрипта, чтобы открыть контекстное меню, затем выберите свойства:

Дальше перейдите на вкладку права и установите галочку Разрешить выполнение файла как программы:

Читайте также  Ноутбук hp probook 440 g7 6xj55av обзор

Готово, исполняемый файл linux может быть запущен системой, прямо из файлового менеджера.

Выводы

Вот и все, теперь вы знаете как сделать файл исполняемым в linux. И если нужно будет запустить скрипт или установщик из интернета, у вас не возникнет никаких проблем. Если остались вопросы, спрашивайте в комментариях!

Источник

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

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

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

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

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

print(«Hello from losst!»)

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

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

python -i script.py

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

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

chmod ugo+x script.py

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

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

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

Источник

What do I use on linux to make a python program executable

I just installed a linux system (Kubuntu) and was wondering if there is a program to make python programs executable for linux.

8 Answers 8

Trending sort is based off of the default sorting method — by highest score — but it boosts votes that have happened recently, helping to surface more up-to-date answers.

It falls back to sorting by highest score if no posts are trending.

Switch to Trending sort

Just put this in the first line of your script :

Make the file executable with

If you want to obtain a stand-alone binary application in Python try to use a tool like py2exe or PyInstaller.

You can use PyInstaller. It generates a build dist so you can execute it as a single «binary» file.

Python 3 has the native option of create a build dist also:

Putting these lines at the starting of the code will tell your operating systems to look up the binary program needed for the execution of the python script i.e it is the python interpreter.

So it depends on your operating system where it keeps the python interpreter. As I have Ubuntu as operating system it keeps the python interpreter in /usr/bin/python so I have to write this line at the starting of my python script;

After completing and saving your code

Start your command terminal

Make sure the script lies in your present working directory

Источник

HOW-TO: Программа на Python, Часть 1

Содержание

Автор — Гpэг Валтерс (Greg Walters)

Из множества существующих языков программирования Python — один из самых лёгких в изучении. Он создан в конце 80-х годов XX века, но с тех пор он сильно изменился. Хотя Python входит в состав большинства дистрибутивов Linux, на него часто не обращают внимания при выборе языка для изучения. В этой статье мы рассмотрим создание консольных приложений, а в следующей — программирование графических интерфейсов (GUI ). Давайте создадим простую программу прямо сейчас.

Читайте также  Как заправить картридж hp b109c

Наша первая программа

Наберём код в текстовом редакторе (например, в gedit). Потом мы разберёмся, что делает каждая строка и пойдём дальше.

Введите эти 4 строки:

Это всё. Сохраните файл как hello.py в любом месте. Я предлагаю сохранить его в папке python_examples в домашнем каталоге. Этот пример показывает, как просто написать программу на Python. Для запуска программы нужно сделать её файл исполняемым. Для этого введите в терминале

в папке, в которой вы сохранили программу. Теперь запустите её.

Вот и всё. Теперь давайте рассмотрим что делает каждая строка программы.

Эта строка сообщает системе, что для запуска программы необходимо использовать интерпретатор Python версии 3.

Эта строка просто печатает в окне терминала Hello. I am a python program.

Эта строка немного сложнее. В ней две части. Первая часть: name = и вторая часть: input(«What is your name? «). Сначала рассмотрим вторую часть. Команда input печатает вопрос в терминале («What is your name? ») и ожидает, пока пользователь (вы) не напечатает что-нибудь (и не нажмёт ). Теперь рассмотрим первую часть команды: name =. Она создаёт переменную под названием «name». Что такое переменная? Переменную можно представить себе в виде ящика. В ящике можно хранить вещи: ботинки, части компьютера, бумаги, всё, что туда влезет. Ящику всё равно, что лежит внутри — оно просто лежит там. В нашем примере он хранит то, что вы напечатаете. Я напечатал Ferd Burphel. В данной программе Python просто берёт введённое значение и сохраняет его в ящике «name», чтобы использовать в программе в дальнейшем.

В этой строке мы опять используем команду print для вывода текста на экран, в данном случае для вывода «Hello there, » и того, что хранится в переменной «name» и восклицательного знака в конце. В данной строке мы соединяем три куска текста: «Hello there», информацию в переменной «name» и восклицательный знак.

Теперь давайте быстро обсудим то, что мы сделали, и перейдём к работе над следующим примером. Откройте окно терминала и наберите:

Вы должны увидеть что-то наподобие этого:

Теперь вы находитесь в командной оболочке python. Здесь вы можете выполнять действия, но для начала разберёмся с тем, что у нас получилось. Первым делом вы увидите версию интерпретатора python — у меня стоит 3.4.3. Затем вы увидите сообщение о том, что для получения справки необходимо набрать «help» в командной строке. Это я оставляю Вам в качестве домашнего задания. А пока наберите:

и нажмите Enter. вы увидите:

Обратите внимание, что мы набрали слово «print» в нижнем регистре. Что произойдёт, если набрать «Print (2+2)»? Интерпретатор ответит следующим образом:

Это произошло потому, что слово «print» является зарегистрированной командой, а слово «Print» не является таковой. Для Python регистр очень важен.

Теперь поработаем с переменными ещё раз. Введите:

Вы увидите, что ничего не происходит, за исключением того, что Python отобразит приглашение «>>>». Всё нормально. Мы поручили Python создать переменную (ящик) под названием «var» и положить в неё результат сложения «2+2». Чтобы увидеть, что теперь находится в переменной «var», введите:

и нажмите Enter.

Теперь мы можем снова использовать переменную «var» как число 4. Например, так:

Если мы снова наберём «print (var)», то увидим следующее:

Переменная «var» не изменилась. В ней осталась храниться сумма 2+2, то есть 4.

Конечно, данная программа очень простая и написана для этого урока для начинающих. В последующих уроках программы станут более сложными. А сейчас давайте рассмотрим ещё несколько примеров с переменными.

Введите в интерпретаторе:

Вы создали переменную под названием «strng», которая содержит значение «The time has come for all good men to come to the aid of the party!». С этого момента (пока мы работаем с этим экземпляром интерпретатора) переменная «strng» будет содержать то же значение, пока мы её не изменим. Что будет, если мы попробуем умножить эту переменную на 4?

Читайте также  Кто создал астра линукс

Произошло не совсем то, что вы ожидали. Python напечатал значение переменной «strng» 2 раза. Почему? Интерпретатор знал, что переменная «strng» — это строка, а не число. Невозможно производить математические операции над строками.

Если бы у нас была переменная под названием «s», которая содержала бы значение «4» как показано ниже:

Кажется, что переменная «s» содержит число 4, но это не так. Она содержит текстовое значение «4». И если мы наберем «print (s * 4)», то получим…

Снова интерпретатор знает, что переменная «s» — это строка, а не число. Он знает это, потому что мы взяли число 4 в одинарные кавычки, что означает, что оно является строкой. Мы можем проверить это, набрав «print type(s)», чтобы увидеть, какой тип система присвоила данной переменной.

Подтверждено. Переменная имеет тип «строка». Если мы захотим использовать её в качестве числа, то мы напечатаем следующее:

Строка «s», содержащая значение «4», преобразована в число и умножена на 4, что равно 16.

Теперь у Вас есть основные знания о командах print и input, создании переменных и разнице между строками и числами.

Пойдём дальше. В интерпретаторе Python введите quit() для выхода в командную строку.

Пример цикла For

Теперь давайте рассмотрим пример программирования цикла. Запустите текстовый редактор и наберите следующую программу:

Не забудьте поставить символ табуляции перед строкой «print (cntr)». Это важно. В Python для указания на блоки кода используются не круглые «(» и фигурные «<» скобки как в других языках программирования, а отступы.

Сохраните программу под именем «for_loop.py». До её запуска давайте поговорим о том, что такое цикл «for».

Цикл — это код, выполняющий определённую инструкцию или набор инструкций определённое число раз. В нашей программе мы выполним цикл 10 раз, печатая значение переменной «cntr». Вот перевод команды на русский язык «присвоить переменной «cntr» значение 0, выполнить печать значения переменной «cntr», прибавить к переменной «cntr» 1 и повторить это 10 раз». Выглядит довольно просто. Часть кода «range(0,10)» говорит: начать с 0, повторять, пока значение переменной «cntr» не будет равно 10, и выйти.

Теперь, как раньше, выполните команду

и запустите программу:

Кажется, программа работает, но почему она считает только до 9 и останавливается? Посмотрите её вывод. Напечатано 10 цифр: от 0 до 9. Это то, что мы запрограммировали: напечатать значение переменной «cntr» 10 раз, каждый раз добавляя единицу к переменной, и выйти, когда её значение будет равно 10.

Теперь вы видите, что программирование может быть как простым, так и сложным. Вы должны точно знать, что вы хотите от программы. Если вы измените команду «range» на «range(1,10)», она начнёт считать с 1, но остановится на 9, так как при достижении верхнего порога (10) цикл прерывается. Чтобы заставить программу печатать «1,2,3,4,5,6,7,8,9,10», надо заменить команду на «range(1,11)», так как цикл «for» прерывается при достижении второго числа в команде «range».

Обратите также внимание на синтаксис цикла. Двоеточие в команде «for переменная in range(начальное значение,конечное значение):» означает начало блока кода, который должен быть смещен вправо. Вы должны использовать двоеточие «:» и смещать код вправо до конца блока — это очень важно.

Если мы изменим нашу программу таким образом:

Мы увидим на экране следующее:

Убедитесь в том, что вы соблюдаете уровни вложенности. Запомните: от них зависит выделение блоков. В следующем уроке мы подробнее рассмотрим уровни вложенности.

На сегодня хватит. В следующем уроке мы продолжим изучать команды языка Python. А пока, вам стоит попробовать специализированные редакторы для Python, например, Dr. Python или SPE (Stani’s Python Editor). Обе программы вы найдёте в Synaptic.

Источник

Mac OS X Hints
Adblock
detector