Захотел установить программу
PAGE, с помощью которой можно легко и быстро генерировать оконный интерфейс пайтон-программ для библиотеки Tkinter.
Программа написана на Python. Скачивается, распаковывается в любое место и запускается:
$ cd /tmp
$ tar zxvf page-8.1.tgz
$ python3 '/tmp/page/page.py'Вопрос в следующем. Хочу не просто скопировать в домашнюю папку и запускать при надобности из нее, а установить программу. Типа как устанавливает pip, например.
Сюда помещает либо симлинк, либо сценарий python:
~/.local/bin/Основная папка с программой находится здесь:
~/.local/lib/python3.11/site-packages/ProgramName/Как это правильно сделать, и стоит ли делать вообще?
Подскажите, кто разбирался в этом вопросе ранее.
Естественно, гуглил, но толком ответа нет.
Пользователь добавил сообщение 01 Октября 2025, 15:39:46:
Решил попробовать скопировать программу в стандартные папки.
Перед этим посмотрел куда установлен gresistor3, установленный через pip:
Перед этим посмотрел куда установлен gresistor3, установленный через pip:
~$ whereis gresistor3
gresistor3: /usr/local/bin/gresistor3
~$ ls -HalF /usr/local/bin/gresistor3
-rwxr-xr-x 1 root root 219 июл 2 2024 /usr/local/bin/gresistor3*
~$ cat /usr/local/bin/gresistor3
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import re
import sys
from gresistor3.gresistor import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
sys.exit(main())
Далее найдено вручную за пару минут:
/usr/local/share/applications/gresistor.desktop
/usr/local/bin/gresistor3
/usr/local/lib/python3.11/dist-packages
/usr/local/lib/python3.11/dist-packages/gresistor3
/usr/local/share/icons/gresistor.png
gresistor.png 48x48px.
Копирую все по своим местам:
sudo cp /tmp/page/images/page48.png /usr/local/share/icons/
sudo cp -r /tmp/page/ /usr/local/lib/python3.11/dist-packages/
Сценарий python, наподобие как выше, писать не умею.
Симлинк делать бесполезно, т.к. нужно не просто ткнуть по .py файлу, а запустить его в python3.
А вот desktop-файл можно сделать легко, и прописать там что угодно.
Но хорошо бы, чтобы можно было запускать его и из консоли тоже.
Остается создать скрипт запуска:
sudo touch /usr/local/bin/page
sudo chmod +x /usr/local/bin/page
sudo nano /usr/local/bin/page
Следующего содержания:
#!/bin/bash
/usr/bin/python3 /usr/local/lib/python3.11/dist-packages/page/page.py
Запускаем page из консоли:
$ pageИ вуаля, всё работает!
Осталось создать desktop-файл в:
/usr/share/applications/
или в
/usr/local/share/applications/
sudo touch /usr/local/share/applications/page.desktop
sudo nano /usr/local/share/applications/page.desktop
Следующего содержания:
[Desktop Entry]
Categories=Development;
Comment=GUI generator for Python and Tkinter
Icon=page48.png
Exec=page
Name=Page
NoDisplay=false
Terminal=false
Type=Application
И в результате, всё замечательно работает!
Более чем уверен, что всё сделал неправильно. В папке много лишнего. Но по большому счету, это почти то же самое, если бы просто скопировал в домашнюю папку. Пусть пока будет так, а позже, знающие люди подскажут, что я сделал не так.