Що я використовую в Linux, щоб зробити програму python виконуваною


88

Я щойно встановив систему Linux (Kubuntu) і цікавився, чи існує програма, яка робить програми python виконуваними для Linux.




2
Ні, там не відповіли. Це питання запитує про проблеми розповсюдження.
tzot,

Ні, це не дурень. Це питання пов'язане з розповсюдженням програмного забезпечення python, уникаючи проблем із доступністю бібліотеки та сумісністю.
tzot,

Відповіді:


157

Просто помістіть це в перший рядок вашого сценарію:

#!/usr/bin/env python

Зробіть файл виконуваним за допомогою

chmod +x myfile.py

Виконати за допомогою

./myfile.py

6
Я збентежений. Як працює "#! / Usr / bin / env python", коли хеш повинен зробити його коментованим рядком? Я спробував запустити сценарій без хеш-рядка, але це не спрацювало. Тож очевидно рядок обов’язковий, але як він працює, якщо це коментар?
Nav

5
Якщо ви надсилаєте сценарії колезі-програмісту, це нормально. Але це не підходить для розповсюдження програм Python серед кінцевих користувачів. Що робити, якщо у користувача не встановлений Python? Що робити, якщо вони це роблять, але це інша версія, ніж ви писали програму? Загалом це буде працювати лише для незначного відсотка користувачів, особливо в Windows.
Джонатан Хартлі

5
@MathManiac Якщо ви продовжите, як ви натякаєте, близько 15% користувачів не зможуть запустити вашу програму. Це буде тяжким тягарем підтримки, не кажучи вже про фантастично ворожий досвід користувачів, який створить потік ненависних повідомлень "Додаток X смокче". Я дотримуюсь свого твердження, що це не підходить для розповсюдження програм серед кінцевих користувачів.
Джонатан Хартлі,

3
@PrahladYeri use # / usr / bin / env python3
kingledion

4
@Nav Це називається Шебанг . Це викладено, оскільки воно не повинно інтерпретуватися python. Він надає інформацію операційній системі. Більш конкретно там сказано, яку програму слід використовувати для виконання сценарію.
MannyC

16

Якщо ви хочете отримати самостійний двійковий додаток у Python, спробуйте скористатися таким інструментом, як py2exe або PyInstaller .


ключове слово: автономне
D Adams

Чи можу я декомпілювати вихідні дані PyInstaller?
СуБ

14

Ви можете використовувати PyInstaller. Він генерує dist збірки, щоб ви могли виконати його як єдиний "двійковий" файл.

http://pythonhosted.org/PyInstaller/#using-pyinstaller

Python 3 також має вбудований варіант створення dist build:

https://docs.python.org/3/distutils/builtdist.html


питання не в створенні python-скриптів exe / elf-файлів
warvariuc

8
Вибачте, але здається, що питання саме в цьому! "цікавився, чи існує програма, яка робить програми python виконуваними для Linux."
Лео Пепе

Велике спасибі, @LeoPepe, я щойно зробив присутність для свого класу, який бере вхідні дані (імена присутніх студентів) з файлу та надає відвідуваність у вихідному файлі, просто натискаючи на запущений сценарій, зроблений за допомогою pyinstaller.
Геній

4

Розміщення цих рядків на початку коду скаже вашим операційним системам шукати двійкову програму, необхідну для виконання скрипта python, тобто це інтерпретатор python.

Тож це залежить від вашої операційної системи, де вона зберігає інтерпретатор python. Оскільки у мене операційна система Ubuntu, вона зберігає інтерпретатор python, /usr/bin/pythonтому мені доводиться писати цей рядок на початку мого сценарію python;

#!/usr/bin/python

Після заповнення та збереження коду

  1. Запустіть свій командний термінал

  2. Переконайтесь, що сценарій лежить у вашому поточному робочому каталозі

  3. Тип chmod +x script_name.py

  4. Тепер ви можете запустити сценарій, натиснувши скрипт. З'явиться вікно попередження; натисніть "Запустити" або "Запустити в терміналі" у вікні попередження; або, в підказці терміналу, введіть./script_name.py


4

Якщо хтось хоче зробити виконуваний файл hello.py

спочатку знайдіть шлях, де python знаходиться у вашому os за допомогою: which python

він зазвичай знаходиться в папці "/ usr / bin / python".

у самому першому рядку hello.pyслід додати:#!/usr/bin/python

потім через команду linux chmod

потрібно просто зробити його виконуваним, як: chmod +x hello.py

і виконати за допомогою ./hello.py


1

Я роблю наступне:

  1. поставити #! / usr / bin / env python3 у верхній частині сценарію
  2. chmod u + x file.py
  3. Змініть .py на .command в назві файлу

Це по суті перетворює файл на виконуваний файл bash. Коли ви двічі клацнете на ньому, він повинен запуститися. Це працює в системах на основі Unix.


0

Іншим способом зробити це може бути створення псевдоніма. Наприклад, в терміналі напишіть:

alias printhello='python /home/hello_world.py'

Запис printhelloбуде виконуватися hello_world.py, але це лише тимчасово. Щоб зробити псевдоніми постійними, їх потрібно додати до bashrc, ви можете відредагувати це, записавши це в терміналі:

gedit ~/.bashrc
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.