Что я использую в Linux для создания исполняемого файла программы Python

89

Я только что установил Linux-систему (Kubuntu) и задавался вопросом, есть ли программа, позволяющая сделать программы Python исполняемыми для Linux.

rmtheis
источник
Уже ответил здесь http: //stackoverflow.com/questions/193077 / ...
Эндрю Бейер
Обманывать stackoverflow.com/questions/193077/…
S.Lott
2
Нет, там нет ответа. Этот вопрос касается проблем с распространением.
tzot
Нет, это не обман. Этот вопрос связан с распространением программного обеспечения python, избегая проблем с доступностью библиотек и совместимостью.
tzot

Ответы:

160

Просто поместите это в первую строку вашего скрипта:

#!/usr/bin/env python

Сделайте файл исполняемым с помощью

chmod +x myfile.py

Выполнить с

./myfile.py
Винсент Ван Ден Берге
источник
7
Я в замешательстве. Как работает "#! / Usr / bin / env python", когда предполагается, что хеш делает его строкой с комментариями? Я попытался запустить скрипт без хеш-строки, но это не сработало. Строка, очевидно, обязательна, но как она работает, если это комментарий?
Nav
5
Если вы отправляете сценарии другому программисту, это нормально. Но это не подходящий способ распространения программ Python среди конечных пользователей. Что делать, если у пользователя не установлен Python? Что, если да, но это другая версия, чем вы написали программу? В целом это будет работать только для небольшого процента пользователей, особенно в Windows.
Джонатан Хартли
5
@MathManiac. Если вы продолжите, как предполагаете, около 15% пользователей не смогут запустить ваше приложение. Это будет тяжелым бременем поддержки, не говоря уже о фантастически враждебном пользовательском опыте, который вызовет поток ненавистных сообщений «приложение X - отстой». Я поддерживаю свое утверждение, что это не подходящий способ распространения приложений среди конечных пользователей.
Джонатан Хартли,
3
@PrahladYeri использует # / usr / bin / env python3
kingledion
4
@Nav Это называется Шебанг . Он закомментирован, потому что он не должен интерпретироваться Python. Он передает информацию операционной системе. В частности, в нем говорится, какую программу следует использовать для выполнения сценария.
MannyC
16

Если вы хотите получить автономное двоичное приложение на Python, попробуйте использовать такой инструмент, как py2exe или PyInstaller .

Михай8
источник
ключевое слово: standalone
D Adams
Могу ли я декомпилировать вывод PyInstaller?
SuB
14

Вы можете использовать PyInstaller. Он генерирует дистрибутив сборки, поэтому вы можете выполнить его как один «двоичный» файл.

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

Python 3 также имеет встроенную опцию создания дистрибутива сборки:

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

Лео Пепе
источник
вопрос не в том, чтобы создавать файлы exe / elf скриптов python
warvariuc
8
Извините, но похоже, что вопрос именно в этом! «интересовался, есть ли программа, которая делает программы на Python исполняемыми для Linux».
Лео Пепе
Большое спасибо, @LeoPepe, я только что сделал счетчик посещаемости для своего класса, который принимает входные данные (имена присутствующих студентов) из файла и выдает посещаемость в выходном файле, просто щелкнув исполняемый скрипт, созданный с помощью pyinstaller.
Genius
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 находится в вашей ОС, с помощью: 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.

dan_the_ham-man
источник
0

Другой способ сделать это - создать псевдоним. Например, в терминале напишите:

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

Запись printhelloбудет запускать hello_world.py, но это только временно. Чтобы сделать псевдонимы постоянными, вы должны добавить их в bashrc, вы можете отредактировать его, написав это в терминале:

gedit ~/.bashrc
Коко
источник