Создание исполняемых файлов Python в Ubuntu - PullRequest
2 голосов
/ 30 августа 2010

В Windows для выполнения одного из моих кодов все, что мне нужно сделать, это дважды щелкнуть файл. Однако я не могу понять, как выполнить аналогичную задачу в Ubuntu.

Ответы [ 3 ]

6 голосов
/ 30 августа 2010

Убедитесь, что у вас есть #!/usr/bin/env python в качестве первой строки вашего скрипта, затем в вашей оболочке выполните:

chmod +x file.py
./file.py
4 голосов
/ 30 августа 2010

.pyw файлы - это просто .py файлы, которые были переименованы, так что ассоциации файлов Windows будут запускать их с помощью консольного интерпретатора Python вместо обычного.

Чтобы запустить запуск при двойном щелчке по Ubuntu, сначала нужно убедиться, что ядро ​​видит скрипт как исполняемый и знает, что с ним делать. Для этого:

  1. Используйте либо диалоговое окно свойств файла Nautilus, либо команду chmod, чтобы пометить его как исполняемый (chmod +x whatever.pyw)
  2. Убедитесь, что в первой строке файла указано #!/usr/bin/env python (см. wikipedia для получения дополнительной информации)
  3. Убедитесь, что файл был сохранен с концами строк LF (\n) в стиле Unix, а не с концами строк CRLF (\r\n) в стиле DOS / Windows. (Ядро ожидает окончания строки в стиле Unix для шага 2 и, если вы забудете, оно видит символ CR (\r) как часть пути и выдает ошибки)

Вы можете проверить, правильно ли вы выполнили эти шаги, запустив ваш скрипт в окне терминала. (cd в каталог, в котором он находится и запустить ./your_script.pyw)

Если это работает, то Nautilus должен просто автоматически отобразить «Редактировать или запустить?» диалоговое окно, когда вы дважды щелкните. Однако я уже давно не использую GNOME, поэтому не могу быть уверен.

Если это не так, попробуйте переименовать файл в .py. (Я помню, что у Наутилуса была проверка безопасности «Расширение соответствует заголовку?», Которая может не знать, что .pyw является допустимым синонимом для .py)

0 голосов
/ 30 августа 2010

Вы должны установить разрешение для файла для его запуска, используя chmod.Подробности смотрите в man-страницах .

...