Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 4, 2018 11:23:53

Kyrym
Зарегистрирован: 2016-12-28
Сообщения: 225
Репутация: +  3  -
Профиль   Отправить e-mail  

Терминал линукс не видит подключаемый файл, а Shell видит

У меня в коде есть строка:

 sss = open('res/dark.stylesheet', 'r')
Всё прекрасно работает через Shell на виндовс и линукс минт, однако, если запускать программу через терминал линукса, то появляется ошибка, что файл не найден:
 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
Если через терминал проверить наличие файла “dark.stylesheet”, то он вроде как есть:
name@S ~ $ cd ~/Документы/Питон/
name@S ~/Документы/Питон $ ls
res Timer.pyw
name@S ~/Документы/Питон $ ls res/
dark.stylesheet
name@S ~/Документы/Питон $

Может надо прописывать путь через os.path? Или в чём дело?

Офлайн

#2 Янв. 4, 2018 11:40:17

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9998
Репутация: +  857  -
Профиль   Отправить e-mail  

Терминал линукс не видит подключаемый файл, а Shell видит

Kyrym
то появляется ошибка, что файл не найден
Он ищет в текущем каталоге.

Используй временный переход
name@S ~ $ (cd ~/Документы/Питон; python3 Timer.pyw)

И что там расширение pyw делает? Это же только для винды применяется, чтобы консоль не выскакивала.



Отредактировано py.user.next (Янв. 4, 2018 11:42:00)

Офлайн

#3 Янв. 4, 2018 14:21:56

Kyrym
Зарегистрирован: 2016-12-28
Сообщения: 225
Репутация: +  3  -
Профиль   Отправить e-mail  

Терминал линукс не видит подключаемый файл, а Shell видит

py.user.next
Используй временный переход
Ура! Работает.
py.user.next
И что там расширение pyw делает? Это же только для винды применяется, чтобы консоль не выскакивала.
Дело в том, что мне нравится идея запускать py в IDLE, чтобы писать код, а pyw, чтобы непосредственно запускать программу двойным кликом. Это удобно. Так было в виндовс, а в линуксе, я пока так и не разобрался, как это осуществить. В оболочке KDE почти получилось, но начинались другие проблемы…

Офлайн

#4 Янв. 4, 2018 15:08:50

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9998
Репутация: +  857  -
Профиль   Отправить e-mail  

Терминал линукс не видит подключаемый файл, а Shell видит

Kyrym
а pyw, чтобы непосредственно запускать программу двойным кликом
В лине нет никакого pyw, это только в винде сделано. В лине можно вообще расширения не ставить никакого. Делают .py только для того, чтобы текстовые редакторы подсвечивали код правильно.

Kyrym
В оболочке KDE почти получилось, но начинались другие проблемы…
В KDE ты делаешь файл program.desktop или ссылку на программу, а потом добавляешь её в меню (пуск типа), либо как значок на рабочий стол или панель на крае экрана.

Короче, не надо виндовые знания применять к линю. В лине всё совсем по-другому работает и гораздо лучше и гибче, чем в винде.



Отредактировано py.user.next (Янв. 4, 2018 15:13:29)

Офлайн

#5 Янв. 4, 2018 15:21:20

Kyrym
Зарегистрирован: 2016-12-28
Сообщения: 225
Репутация: +  3  -
Профиль   Отправить e-mail  

Терминал линукс не видит подключаемый файл, а Shell видит

py.user.next
В KDE ты делаешь файл program.desktop или ссылку на программу
Нет, я тогда игрался с назначением программы по умолчанию:
Запуск двойным кликом *.pyw
Зайти в свойства файла. Вк (вкладка) «Основные» - «Параметры типа файла» - Вк «Общие». Меняем описание на «python3» - для себя. В «Приоритет приложений» - Кн (кнопка) «Добавить» - прописать
console-kit-daemon. В списке приоритетов приложений появится новая запись, выделяем её, далее «Правка» - Вк «Приложение». Прописываем команду: «/usr/bin/python3 %f». Закрываем все окна. Теперь расширение pyw открывается двойным кликом.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version