• Добавление кнопкни Tkinter, при нажатии на которую, открывается другой Python файл?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    Типовая структура проекта на питоне:|
    my_project_name\            # корневой каталог проекта
        .git                    # каталог с данными контроля версий
        my_project_name\        # каталог главного пакета вашего проекта
            __init__.py         # файл, который делает из этого каталога пакет. Файл можно оставить пустым
            my_script1.py       # Скрипт, который вы возможно захотите хапустить внутри вашего проекта
            my_script2.py       # Ещё один скрипт
            my_module1.py       # модуль, который вы хотите импортировать внутри проекта
            my_module2.py       # ещё модуль
            my_sub_package\     # если модуль уже хочется разбить на несколько файлов, то можно сделать пакет
                __init__.py     # этот файл делает из каталога с исходниками пакет, который позволит ммпортировать его как модуль
                my_module3.py   # это модуль внутри пакета
                my_module4.py   # ещё один
    
        my_lib1\                # это пакет, который не зависит от вашего проекта, но используется в нём и вы почему-то
                                # хотите хранить их в одном репозитории. Странное решение, но так тоже можно.
            __init__.py         # да, этот каталог стал пакетом благодаря этому файлу
            my_lib_module.py    # тут может быть ещё много модулей
    
        setup.py                # этот файл нужен, чтобы все эти пакеты (их сейчас тут два) можно было ставить через
                                # пакетный менеджер питона, например pip
        readme.txt              # ридми. Те, кто не делают ридми, рискуют немножко гореть в аду.

    Вы можете импортировать из одного модуля другие абсолютным иотносительным импортом.
    Я рекомендую, пока у вас мало лпыта, пользоватьс яотносительным и не переусложнять с этим.
    Например, чтобы в my_script1 вызвать функцию из другизх модулей и пакетов, пишите так:
    from my_project_name.my_module1 import my_function1
    from my_project_name.my_sub_package.my_module3 import my_function3
    
    from my_lib1 import my_lib_module
    from my_lib1.my_lib_module import my_lib_function1

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

    Я вот сейчас подумал, что хорошо бы оформить это в виде отдельного репозитория и провести митап среди джунов нашей компании. Уверен, что многие смутно представляют себе всю эту концепцию.
    Ответ написан
    Комментировать
  • Почему он не открывает ссылки?

    Stalker_RED
    @Stalker_RED
    Покажите разметку. Вангую, что в ссылках нет слешей.

    И не выкладывайте код картинками, это запрещено правилами и вообще неприлично.
    Ответ написан
    2 комментария