Ярлык для *.pyw (python)

Как правильно задавать вопросы Правильно сформулированный вопрос и его грамотное оформление способствует высокой вероятности получения достаточно содержательного и по существу ответа. Общая рекомендация по составлению тем: 1. Для начала воспользуйтесь поиском форума. 2. Укажите версию ОС вместе с разрядностью. Пример: LM 19.3 x64, LM Sarah x32 3. DE. Если вопрос касается двух, то через запятую. (xfce, KDE, cinnamon, mate) 4. Какое железо. (достаточно вывод inxi -Fxz в спойлере (как пользоваться спойлером смотрим здесь)) или же дать ссылку на hw-probe 5. Суть. Желательно с выводом консоли, логами. 6. Скрин. Просьба указывать 2, 3 и 4 независимо от того, имеет ли это отношение к вопросу или нет. Так же не забываем об общих правилах Как пример вот
Закрыто
Аватара пользователя

Автор темы
Kurum
Сообщения: 490
Зарегистрирован: 16 окт 2017, 21:32
Решено: 2
Благодарил (а): 193 раза
Поблагодарили: 36 раз
Контактная информация:

Ярлык для *.pyw (python)

#1

03 янв 2018, 13:38

Linux Mint XFCE 18.3
Хочу сделать ярлык для питоновского файла с расширением .*pyw (можно и .*py).
Нажимаю на "Создать значёк запуска".
Вписываю имя ярлыка.
Команда: 'python3 ~/Документы/Питон/Timer.pyw'
Рабочий каталог: '~/Документы/Питон'
Ставлю галочку "Запускать в терминале".
И ничего не работает, только мелькает окно терминала (открылось и сразу закрылось).
Linux - это свобода... :tux:
Текущая:
KDE Neon 5.2x
Предыдущая:
Linux Mint 19.1 Cinnamon
Железо:
Intel Core i3-6100 CPU @ 3.7 ГГц x2, 16Гб ОЗУ

Аватара пользователя

Chocobo
Сообщения: 10015
Зарегистрирован: 27 авг 2016, 22:57
Решено: 215
Откуда: НН
Благодарил (а): 815 раз
Поблагодарили: 3010 раз
Контактная информация:

Ярлык для *.pyw (python)

#2

03 янв 2018, 14:08

Kurum писал(а):
03 янв 2018, 13:38
Команда: 'python3 ~/Документы/Питон/Timer.pyw'
Попробуй вызывать сам терминал с выполнением команды уже там.
Что-то вроде
xfce4-terminal -H -e python3 ~/Документы/Питон/Timer.pyw
Изображение
   
Изображение

Аватара пользователя

PantiL
Сообщения: 35
Зарегистрирован: 29 дек 2017, 07:15
Откуда: Чертково Ростовская обл
Благодарил (а): 11 раз
Поблагодарили: 3 раза
Контактная информация:

Ярлык для *.pyw (python)

#3

03 янв 2018, 14:09

Что происходит, если вы запускаете этот скрипт вручную в терминале? Похоже, что скрипт закончил свою работу и терминал закрылся.
Алексей. LM 18.3 Cinnamon
А ты помог Linux Mint ?

Аватара пользователя

Автор темы
Kurum
Сообщения: 490
Зарегистрирован: 16 окт 2017, 21:32
Решено: 2
Благодарил (а): 193 раза
Поблагодарили: 36 раз
Контактная информация:

Ярлык для *.pyw (python)

#4

03 янв 2018, 14:56

Chocobo писал(а):
03 янв 2018, 14:08
Kurum писал(а):
03 янв 2018, 13:38
Команда: 'python3 ~/Документы/Питон/Timer.pyw'
Попробуй вызывать сам терминал с выполнением команды уже там.
Что-то вроде
xfce4-terminal -H -e python3 ~/Документы/Питон/Timer.pyw
Попробовал. Результат тот же.
PantiL писал(а):
03 янв 2018, 14:09
Что происходит, если вы запускаете этот скрипт вручную в терминале? Похоже, что скрипт закончил свою работу и терминал закрылся.
Если запускаю скрипт в терминале вручную, то он запускается.

Есть ещё странный момент. Это уже другой файл питона. Там есть строчка:
sss = open('res/dark.stylesheet', 'r')
Если я запускаю файл через IDLE, то всё работает, как задумано. А вот при запуске через терминал вылезает ошибка, что нет такого файла:
FileNotFoundError: [Errno 2] Нет такого файла или каталога: 'res/dark.stylesheet'
Почему так происходит? Эта ошибка и в XFCE и в KDE.
Linux - это свобода... :tux:
Текущая:
KDE Neon 5.2x
Предыдущая:
Linux Mint 19.1 Cinnamon
Железо:
Intel Core i3-6100 CPU @ 3.7 ГГц x2, 16Гб ОЗУ

Аватара пользователя

PantiL
Сообщения: 35
Зарегистрирован: 29 дек 2017, 07:15
Откуда: Чертково Ростовская обл
Благодарил (а): 11 раз
Поблагодарили: 3 раза
Контактная информация:

Ярлык для *.pyw (python)

#5

03 янв 2018, 17:20

Kurum писал(а):
03 янв 2018, 14:56
Почему так происходит? Эта ошибка и в XFCE и в KDE.
Ни XFCE, ни KDE тут ни при чем. Если питон сообщает, что такого файла нет - значит его и правда нет по пути res/dark.stylesheet относительно самого скрипта.
А ну ка скопируйте вывод этих команд:

Код: Выделить всё

cd путь/до/скрипта
ls
ls res/
Алексей. LM 18.3 Cinnamon
А ты помог Linux Mint ?

Аватара пользователя

PantiL
Сообщения: 35
Зарегистрирован: 29 дек 2017, 07:15
Откуда: Чертково Ростовская обл
Благодарил (а): 11 раз
Поблагодарили: 3 раза
Контактная информация:

Ярлык для *.pyw (python)

#6

03 янв 2018, 17:22

Kurum писал(а):
03 янв 2018, 14:56
Если запускаю скрипт в терминале вручную, то он запускается.
Понятно, что он запускается, что он делает?
Алексей. LM 18.3 Cinnamon
А ты помог Linux Mint ?

Аватара пользователя

Автор темы
Kurum
Сообщения: 490
Зарегистрирован: 16 окт 2017, 21:32
Решено: 2
Благодарил (а): 193 раза
Поблагодарили: 36 раз
Контактная информация:

Ярлык для *.pyw (python)

#7

04 янв 2018, 11:17

PantiL писал(а):
03 янв 2018, 17:20
Ни XFCE, ни KDE тут ни при чем.
Я имел ввиду, что проблема есть на двух машинах с разными оболочками (здесь главное, что не на одном пк).

Код: Выделить всё

name@S ~ $ cd ~/Документы/Питон/
name@S ~/Документы/Питон $ ls
res  Timer.pyw
name@S ~/Документы/Питон $ ls res/
dark.stylesheet
name@S ~/Документы/Питон $
Файл-то есть...
А вот полный отчёт об ошибке в терминале:

Код: Выделить всё

name@S ~ $ python3 ~/Документы/Питон/Timer.pyw
Traceback (most recent call last):
  File "/home/name/Документы/Питон/Timer.pyw", line 82, in <module>
    window = Window()
  File "/home/name/Документы/Питон/Timer.pyw", line 37, in __init__
    sss = open('res/dark.stylesheet', 'r')
FileNotFoundError: [Errno 2] Нет такого файла или каталога: 'res/dark.stylesheet'
Linux - это свобода... :tux:
Текущая:
KDE Neon 5.2x
Предыдущая:
Linux Mint 19.1 Cinnamon
Железо:
Intel Core i3-6100 CPU @ 3.7 ГГц x2, 16Гб ОЗУ

Аватара пользователя

PantiL
Сообщения: 35
Зарегистрирован: 29 дек 2017, 07:15
Откуда: Чертково Ростовская обл
Благодарил (а): 11 раз
Поблагодарили: 3 раза
Контактная информация:

Ярлык для *.pyw (python)

#8

04 янв 2018, 11:54

Странно конечно. Но ладно, тогда подредактируй скрипт вот так:
В начало файла добавь если там такого нет

Код: Выделить всё

import os
потом, в том месте где написаны строки открывающие файл :

Код: Выделить всё

path_to_script = os.path.dirname(os.path.abspath(__file__))
path_to_file = os.path.join(path_to_script, 'res/dark.stylesheet')
sss = open(path_to_file, 'r')
Алексей. LM 18.3 Cinnamon
А ты помог Linux Mint ?

Аватара пользователя

Автор темы
Kurum
Сообщения: 490
Зарегистрирован: 16 окт 2017, 21:32
Решено: 2
Благодарил (а): 193 раза
Поблагодарили: 36 раз
Контактная информация:

Ярлык для *.pyw (python)

#9

04 янв 2018, 15:38

Да, так работает )).
На другом форуме мне подсказали вот такое решение в терминале:
cd ~/Документы/Питон; python3 Timer.pyw
Тоже работает.
Linux - это свобода... :tux:
Текущая:
KDE Neon 5.2x
Предыдущая:
Linux Mint 19.1 Cinnamon
Железо:
Intel Core i3-6100 CPU @ 3.7 ГГц x2, 16Гб ОЗУ

no avatar

achagaev
Сообщения: 34
Зарегистрирован: 09 ноя 2017, 10:21
Благодарил (а): 5 раз
Поблагодарили: 6 раз
Контактная информация:

Ярлык для *.pyw (python)

#10

04 янв 2018, 15:49

Либо ещё прописать полный путь тут:
sss = open('res/dark.stylesheet', 'r') -> sss = open('~/Документы/Питон/res/dark.stylesheet', 'r')
Суть в том, что питон стартует из его родной директории, а не из директории скрипта. и Ваш относительный путь не находится.

Аватара пользователя

PantiL
Сообщения: 35
Зарегистрирован: 29 дек 2017, 07:15
Откуда: Чертково Ростовская обл
Благодарил (а): 11 раз
Поблагодарили: 3 раза
Контактная информация:

Ярлык для *.pyw (python)

#11

04 янв 2018, 16:09

Kurum писал(а):
04 янв 2018, 15:38
Да, так работает )).
С моим решением будет работать, неважно откуда запускать скрипт.
achagaev писал(а):
04 янв 2018, 15:49
Либо ещё прописать полный путь тут
В моем решении именно это и сделано, только полный путь вычисляется динамически, неважно где будет располагаться скрипт.
Алексей. LM 18.3 Cinnamon
А ты помог Linux Mint ?

Аватара пользователя

Автор темы
Kurum
Сообщения: 490
Зарегистрирован: 16 окт 2017, 21:32
Решено: 2
Благодарил (а): 193 раза
Поблагодарили: 36 раз
Контактная информация:

Ярлык для *.pyw (python)

#12

04 янв 2018, 17:09

Вопрос по поводу первого сообщения открыт.
Linux - это свобода... :tux:
Текущая:
KDE Neon 5.2x
Предыдущая:
Linux Mint 19.1 Cinnamon
Железо:
Intel Core i3-6100 CPU @ 3.7 ГГц x2, 16Гб ОЗУ

no avatar

achagaev
Сообщения: 34
Зарегистрирован: 09 ноя 2017, 10:21
Благодарил (а): 5 раз
Поблагодарили: 6 раз
Контактная информация:

Ярлык для *.pyw (python)

#13

04 янв 2018, 17:19

PantiL писал(а):
04 янв 2018, 16:09
В моем решении именно это и сделано, только полный путь вычисляется динамически, неважно где будет располагаться скрипт.
Не спорю, я не особо питонист, но тут сразу бросается в глаза относительность пути.
2Kurum,
А первый вопрос - это какой? Чтоб окно терминала не закрывалось после выполнения? Если да, то поищите инфу как зафризить его, для баша (если его как обёртку используете) есть команда 'pause'. Если у Вас чисто питон, то явно что-то тоже имеется, вот например raw_input()/input() советуют

Аватара пользователя

Автор темы
Kurum
Сообщения: 490
Зарегистрирован: 16 окт 2017, 21:32
Решено: 2
Благодарил (а): 193 раза
Поблагодарили: 36 раз
Контактная информация:

Ярлык для *.pyw (python)

#14

04 янв 2018, 17:27

Первый вопрос - это "как правильно сделать ярлык для запуска файла питона?".
Теперь у меня получилось.
В сам файл надо было добавить строчку:
#!/usr/bin/env python
Причём не python3, а просто python.
И отключить галку "запускать в терминале" - ну это, конечно, кому что надо. У меня GUI-интерфейс, так что мне терминал не нужен.
Linux - это свобода... :tux:
Текущая:
KDE Neon 5.2x
Предыдущая:
Linux Mint 19.1 Cinnamon
Железо:
Intel Core i3-6100 CPU @ 3.7 ГГц x2, 16Гб ОЗУ

Аватара пользователя

PantiL
Сообщения: 35
Зарегистрирован: 29 дек 2017, 07:15
Откуда: Чертково Ростовская обл
Благодарил (а): 11 раз
Поблагодарили: 3 раза
Контактная информация:

Ярлык для *.pyw (python)

#15

04 янв 2018, 18:10

Kurum писал(а):
04 янв 2018, 17:27
Причём не python3, а просто python
Ну это смотря какая версия питона тебе нужна. По-умолчанию сейчас команда python соответствует версии Python 2.7.12 (ну у меня так в 18.3) Если же для выполнения скрипта нужна версия 3.* то тогда команда должна быть python3
Алексей. LM 18.3 Cinnamon
А ты помог Linux Mint ?

Закрыто

Вернуться в «Программирование, скриптинг, виртуализация»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 7 гостей