Есть несколько способов использовать собственный модуль в разных проектах:
PYTHONPATH.from ..my_module import my_function).setup.py и установить его с помощью pip install .. Это позволяет легко управлять зависимостями и версиями модуля.pip install /путь/к/модулюНаиболее рекомендуемый способ – создание и установка пакета Python, так как это обеспечивает лучшую организацию и возможность управления версиями.
Есть несколько способов использовать собственный модуль в разных Python-проектах. Выбор зависит от того, как часто вы будете обновлять модуль, хотите ли делиться им с другими, и от общей структуры ваших проектов.
1. Простое копирование: Самый простой способ – скопировать файл модуля (.py) в директорию каждого проекта, где он необходим. Это подходит для небольших модулей, которые нечасто меняются. Однако, это создает дубликаты кода, что усложняет поддержку и обновление: если вы исправите баг в одном месте, нужно будет не забыть исправить его во всех остальных.
2. Использование sys.path: Вы можете добавить путь к директории с вашим модулем в список sys.path в каждом проекте.  sys.path – это список директорий, где Python ищет модули при импорте. Это можно сделать временно, в начале скрипта:
import sys
sys.path.append('/путь/к/вашему/модулю')
import мой_модуль
Или постоянно, добавив путь в переменную окружения PYTHONPATH. Это удобно, если модуль используется во многих проектах, но изменения в PYTHONPATH могут повлиять на другие Python-окружения.  Например, в Linux/macOS: export PYTHONPATH=$PYTHONPATH:/путь/к/вашему/модулю перед запуском скрипта. В Windows – через настройки системных переменных окружения.
3. Создание пакета и установка с помощью pip (рекомендуемый способ): Этот способ наиболее предпочтителен, особенно если вы планируете делиться модулем с другими или часто его обновлять. Он включает в себя:
my_module).  Внутри нее должен быть файл __init__.py (даже пустой) и файлы ваших модулей (например, my_module/module1.py, my_module/module2.py).setup.py: Этот файл содержит метаданные о вашем пакете (имя, версию, описание, зависимости).pip для установки пакета: С помощью команды pip install . (находясь в директории с файлом setup.py) вы установите ваш модуль в текущее Python-окружение.Пример файла setup.py:
from setuptools import setup, find_packages
setup(
    name='my_module',
    version='0.1.0',
    packages=find_packages(),
    install_requires=[
        # Перечислите зависимости вашего модуля здесь, если они есть.
    ],
)
После установки вы сможете импортировать модуль в любом проекте, используя import my_module.
4. Использование виртуальных окружений (venv или virtualenv):  Рекомендуется использовать виртуальные окружения для каждого проекта, чтобы изолировать зависимости.  Можно установить ваш модуль (через pip) в каждое виртуальное окружение, где он необходим.  Это предотвращает конфликты между разными версиями одного и того же модуля в разных проектах.
5. Использование репозитория (Git) и pip install -e . (для разработки): Если вы разрабатываете модуль и часто его меняете, вы можете хранить его в Git-репозитории (например, на GitHub или GitLab). Затем, в каждом проекте, где вы хотите использовать этот модуль, вы можете использовать pip install -e . (в директории модуля, после клонирования репозитория) для установки модуля в "редактируемом" режиме.  Любые изменения, внесенные в код модуля, будут сразу же отражаться в проектах, использующих его, без необходимости переустановки.
В целом, использование pip и файла setup.py – наиболее гибкий и поддерживаемый способ распространения и использования собственных модулей в Python.