Вопрос или проблема
Я хочу избежать ручного редактирования кода библиотеки каждый раз, когда я устанавливаю зависимости, и есть ли способ получить будущие обновления библиотеки, сохраняя при этом мои изменения?
В данный момент я без понятия, как это сделать.
Сделайте форк библиотеки > внесите свои изменения в ваш форк > добавьте URL репозитория форка в ваш requirements.txt.
requirements.txt:
git+https://github.com/<ваше_имя_пользователя>/<репозиторий_форка>.git@<ваша-ветка>#egg=<имя_оригинальной_библиотеки>
замените всё на <>
Чтобы получить будущие обновления библиотеки, сохраняя при этом ваши изменения. Вам, вероятно, потребуется добавить оригинальный репозиторий как удаленный в вашем локальном клонe > получить и объединить изменения из оригинального репозитория > разрешить конфликты слияния вручную > отправить обновленный код в ваш форк.
действуйте с осторожностью… я это не тестировал, но в теории это должно сработать.
Ответ или решение
Чтобы поддерживать модифицированную версию библиотеки Python и автоматически устанавливать эту версию с помощью файла requirements.txt
, следуйте приведённым ниже шагам:
Шаг 1: Форкнуть библиотеку
- Сделайте форк оригинального репозитория библиотеки на GitHub. Перейдите на страницу репозитория, который вы хотите модифицировать, и нажмите на кнопку "Fork". Это создаст копию репозитория в вашем аккаунте GitHub.
Шаг 2: Внесите изменения
-
Клонируйте форкнутый репозиторий на свой локальный компьютер:
git clone https://github.com/<ваше_имя_пользователя>/<имя_форка_библиотеки>.git cd <имя_форка_библиотеки>
- Внесите необходимые изменения в код. Вы можете редактировать файлы с помощью текстового редактора или IDE.
Шаг 3: Настройте файл requirements.txt
Добавьте строку в ваш файл requirements.txt
, чтобы указать pip установить вашу модифицированную версию библиотеки:
git+https://github.com/<ваше_имя_пользователя>/<имя_форка_библиотеки>.git@<ваша_ветка>#egg=<оригинальное_имя_библиотеки>
Замените:
<ваше_имя_пользователя>
на ваше имя пользователя на GitHub.<имя_форка_библиотеки>
на название форкнутой библиотеки.<ваша_ветка>
на нужную вам ветку (например,main
илиmaster
).<оригинальное_имя_библиотеки>
на имя оригинальной библиотеки.
Шаг 4: Автоматическое получение обновлений
Чтобы получать обновления оригинальной библиотеки, выполните следующие действия:
-
Настройте оригинальный репозиторий как удалённый в вашем локальном клоне:
git remote add upstream https://github.com/<оригинальный_пользователь>/<оригинальный_репозиторий>.git
-
Регулярно загружайте изменения из оригинального репозитория:
git fetch upstream
-
Слияние изменений с вашей веткой:
git merge upstream/main # Или замените main на нужную вам ветку
-
Разрешайте конфликты, если они возникнут, после чего выполните:
git push origin <ваша_ветка>
Заключение
Таким образом, вы сможете поддерживать модифицированную версию библиотеки, автоматически устанавливать её с помощью requirements.txt
и получать будущие обновления из оригинального репозитория. Этот подход позволяет минимизировать усилия на ручное редактирование библиотек и делает вашу разработку более организованной.