Для создания локального репозитория можно использовать утилиту pip index
или просто создать структуру каталогов с пакетами в формате wheel (.whl) или sdist (.tar.gz).
Создание структуры каталогов (простой способ):
my_repo/ ├── my_package_1-1.0.0-py3-none-any.whl ├── my_package_2-2.0.0.tar.gz └── ...
Использование локального репозитория с pip:
--find-links
или -f
: pip install --find-links=file:///путь/к/my_repo my_package_1 my_package_2
pip.conf
/pip.ini
/pip.toml
:
[global] find-links = file:///путь/к/my_repo
Укажите абсолютный путь к локальному репозиторию (file:///...
) или относительный, если он находится в той же директории, что и проект.
Создание и использование локальных репозиториев для установки зависимостей с помощью `pip` - это полезный навык, позволяющий управлять зависимостями в условиях ограниченного доступа к сети, повысить скорость установки пакетов или изолировать проекты.
Создание локального репозитория (простой индекс):
Самый простой способ создать локальный репозиторий - использовать простой индекс (simple index) пакетов Python. Это структура каталогов, где каждый каталог соответствует названию пакета, а внутри лежат файлы `.whl` (Python Wheel) или `.tar.gz` (исходный код пакета).
pip download -d ./пакеты requests beautifulsoup4
. Эта команда скачает пакеты `requests` и `beautifulsoup4` и сохранит их в папку `пакеты`. Папку `пакеты` можно заменить на любую другую.
<!DOCTYPE html>
<html>
<head>
<title>Local Package Repository</title>
</head>
<body>
<a href="requests/requests-2.28.1-py3-none-any.whl">requests-2.28.1-py3-none-any.whl</a><br>
<a href="beautifulsoup4/beautifulsoup4-4.12.2-py3-none-any.whl">beautifulsoup4-4.12.2-py3-none-any.whl</a><br>
</body>
</html>
Использование локального репозитория с `pip`:
Указать `pip` использовать локальный репозиторий можно несколькими способами:
pip install --index-url file:///путь/к/вашему/локальному/репозиторию пакет
Замените `/путь/к/вашему/локальному/репозиторию` на абсолютный путь к директории, содержащей `index.html`. Обратите внимание на `file:///`. Три слеша обязательны.
[global]
index-url = file:///путь/к/вашему/локальному/репозиторию
Файл `pip.conf` обычно находится в `$HOME/.config/pip/pip.conf` в Linux/macOS и `%APPDATA%\pip\pip.ini` в Windows. После добавления этой конфигурации, `pip` будет всегда использовать указанный локальный репозиторий.
export PIP_INDEX_URL=file:///путь/к/вашему/локальному/репозиторию
(Linux/macOS)
set PIP_INDEX_URL=file:///путь/к/вашему/локальному/репозиторию
(Windows)
Альтернативные инструменты:
Для более продвинутого управления локальными репозиториями можно использовать следующие инструменты:
Пример использования `pip-simple-server`:
pip install pip-simple-server
python -m pip_simple_server .
(точка указывает на текущую директорию)pip install --index-url http://localhost:8000 пакет
(обычно сервер запускается на порту 8000).Локальные репозитории значительно облегчают управление зависимостями, особенно в средах без постоянного доступа к сети или при необходимости воспроизводимости сборки проектов.