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

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


person Community    schedule 20.11.2008    source источник
comment
Уже ответил здесь http://stackoverflow.com/questions/193077/standalone-python-applications-in-linux   -  person Andrew Beyer    schedule 20.11.2008
comment
Дублирование stackoverflow.com/questions/193077/   -  person S.Lott    schedule 20.11.2008
comment
Нет, там не ответили. Этот вопрос касается проблем с распространением.   -  person tzot    schedule 20.11.2008
comment
Нет, это не дурак. Этот вопрос связан с распространением программного обеспечения Python, избегая проблем с доступностью и совместимостью библиотек.   -  person tzot    schedule 20.11.2008


Ответы (8)


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

#!/usr/bin/env python

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

chmod +x myfile.py

Выполнить с

./myfile.py
person Vincent Van Den Berghe    schedule 20.11.2008
comment
Я в замешательстве. Как работает питон #!/usr/bin/env, когда хэш должен сделать его закомментированной строкой? Я попытался запустить скрипт без хеш-строки, но это не сработало. Итак, очевидно, что строка обязательна, но как она работает, если это комментарий? - person Nav; 17.08.2011
comment
Если вы отправляете скрипты коллеге-программисту, это нормально. Но это неподходящий способ распространения программ Python среди конечных пользователей. Что делать, если у пользователя не установлен Python? Что, если они есть, но это версия, отличная от той, в которой вы написали программу? В целом это будет работать только для небольшого процента пользователей, особенно в Windows. - person Jonathan Hartley; 20.08.2015
comment
@JonathanHartley Обратите внимание, что это для Linux, ОС, отличной от Windows. В большинстве разновидностей Linux предустановлен Python, всегда 2, а иногда и 3. - person Lawful Lazy; 30.08.2015
comment
@MathManiac Если вы будете действовать так, как подразумеваете, около 15% пользователей не смогут запустить ваше приложение. Это будет сокрушительное бремя поддержки, не говоря уже о фантастически враждебном пользовательском опыте, который породит поток ненавистных постов о приложении X. Я придерживаюсь своего утверждения, что это неподходящий способ распространения приложений среди конечных пользователей. - person Jonathan Hartley; 04.09.2015
comment
@JonathanHartley Как видно из stackoverflow. com/questions/6786693/ , большинство дистрибутивов Linux имеют по крайней мере Python 2. Если вы сосредоточились на части моего комментария о Python 3, я делал слово иногда. - person Lawful Lazy; 05.09.2015
comment
Если мы используем virtualenv для нашего python, изменится ли путь для shebang? - person Matt; 10.06.2016
comment
Есть ли способ сделать скрипт исполняемым только для Python 3, а не для Python 2.7? - person Prahlad Yeri; 21.12.2016
comment
@PrahladYeri использует #/usr/bin/env python3 - person kingledion; 18.01.2017
comment
У меня была проблема ./myFile: Command not found. Чтобы исправить это, я закодировал ее в ansii, а не в utf-8. - person Phylliida; 03.03.2017
comment
@Nav Это называется Shebang. Он закомментирован, потому что Python не должен его интерпретировать. Он передает информацию операционной системе. В частности, в нем говорится, какую программу следует использовать для выполнения сценария. - person MannyC; 08.12.2019

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

person Mihai8    schedule 09.01.2013
comment
ключевое слово: автономный - person D Adams; 03.09.2016
comment
Могу ли я декомпилировать вывод PyInstaller? - person SuB; 19.07.2017

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

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

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

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

person Leo Pepe    schedule 12.12.2014
comment
вопрос не в создании exe/elf файлов python скриптов - person warvariuc; 12.12.2014
comment
Извините, но похоже, что вопрос именно в этом! мне было интересно, есть ли программа для запуска исполняемых программ на python для linux. - person Leo Pepe; 19.12.2014
comment
Большое спасибо, @LeoPepe, я только что сделал счетчик посещаемости для своего класса, который берет входные данные (имена присутствующих учеников) из файла и дает посещаемость в выходном файле, просто щелкнув исполняемый скрипт, созданный с помощью pyinstaller. - person Genius; 11.10.2020

Размещение этих строк в начале кода сообщит вашим операционным системам о необходимости поиска двоичной программы, необходимой для выполнения скрипта Python, т.е. это интерпретатор Python.

Так что это зависит от вашей операционной системы, где она хранит интерпретатор Python. Поскольку у меня Ubuntu в качестве операционной системы, интерпретатор python находится в /usr/bin/python, поэтому я должен написать эту строку в начале моего скрипта python;

#!/usr/bin/python

После заполнения и сохранения кода

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

  2. Убедитесь, что скрипт находится в вашем текущем рабочем каталоге.

  3. Введите chmod +x script_name.py

  4. Теперь вы можете запустить скрипт, щелкнув скрипт. Появится окно предупреждения; нажмите «Выполнить» или «Выполнить в терминале» в окне предупреждения; или в командной строке терминала введите ./script_name.py

person Mohit Dabas    schedule 09.01.2013

Если кто-то хочет сделать исполняемый файл hello.py

сначала найдите путь, по которому python находится в вашей ОС, с помощью: which python

обычно он находится в папке «/usr/bin/python».

в самой первой строке hello.py нужно добавить: #!/usr/bin/python

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

нужно просто сделать его исполняемым, например: chmod +x hello.py

и выполнить с ./hello.py

person Nilesh K.    schedule 07.02.2018

Я делаю следующее:

  1. помещать #! /usr/bin/env python3 в верхней части скрипта
  2. chmod u+x файл.py
  3. Измените .py на .command в имени файла

По сути, это превращает файл в исполняемый файл bash. Когда вы дважды щелкните по нему, он должен запуститься. Это работает в системах на основе Unix.

person dan_the_ham-man    schedule 23.05.2019

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

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

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

gedit ~/.bashrc
person Coco    schedule 11.10.2016

Выполните следующие действия:

  1. Добавьте это как первую строку в файл python точки входа выполнения.
#!/usr/bin/python
  1. Изменить скрипт на исполняемый
    chmod +x <script-name>.py
  1. Создайте символическую ссылку на свой <script-name>.py из /usr/local/bin
ln -s /usr/local/bin/<executable-name-you-want> <path-to-your-script>

Эти шаги работают независимо от того, есть ли у вас один автономный скрипт Python или несколько зависимых скриптов, вызываемых вашим основным файлом.

person Gandharva S Murthy    schedule 19.03.2021