Skip to main content

Creating a directory with a Python virtual environment

Project description

pydvenv - Python Directory Virtual Environment

Описание

pydvenv - это инструмент командной строки для создания директорий с Python виртуальными окружениями. Он объединяет создание виртуального окружения, инициализацию Git-репозитория, установку зависимостей из requirements файлов и другие полезные функции в одной команде.

Установка

pip install pydvenv

Использование

Базовое использование

pydvenv

Создаст виртуальное окружение .venv в текущей директории.

С указанием параметров

pydvenv my_project my_venv

Создаст директорию my_project с виртуальным окружением my_venv внутри.

Параметры командной строки

Позиционные аргументы

  • base_dir (опционально) - Базовая директория для создания виртуального окружения (по умолчанию: текущая директория)
  • env_name (опционально) - Имя виртуального окружения (по умолчанию: .venv)

Флаги создания виртуального окружения

  • --clear, --rewrite, -c - Удалить содержимое директории окружения, если она уже существует, перед созданием
  • --system-site-packages, --system, -s - Дать виртуальному окружению доступ к системным site-packages
  • --symlinks, -S, -L - Использовать символические ссылки вместо копирования (если это не поведение по умолчанию для платформы)
  • --copies, -C - Использовать копирование файлов вместо символических ссылок (даже если символические ссылки являются поведением по умолчанию для платформы)
  • --without-pip, -P - Пропустить установку pip в виртуальном окружении
  • --upgrade-deps, -u - Обновить основные зависимости (pip) до последней версии в PyPI
  • --prompt, -p <текст> - Указать альтернативный префикс для prompt окружения Примечание: Флаги --symlinks и --copies являются взаимоисключающими. Если не указан ни один из них, используется поведение по умолчанию для платформы.

Дополнительные функции

  • --create-git-repository, --create-git, --init-git-repository, --init-git, -g - Создать Git репозиторий. Папка виртуального окружения автоматически добавляется в .gitignore
  • --return-to-cwd, -R - Вернуться в текущую директорию после выполнения
  • --requirements, -r [файл] - Установить Python пакеты из указанного requirements файла. Можно использовать несколько раз. Если указан без аргумента - используется requirements.txt

Управление выводом

  • --verbose, -V, --logging, --log, -l - Включить логирование
  • --debug-logging, --debug, -d - Включить отладочное логирование

Информационные флаги

  • --version, -v - Показать версию программы

Примеры использования

Пример 1: Базовое создание проекта

pydvenv my_new_project

Создаст директорию my_new_project с виртуальным окружением .venv внутри.

Пример 2: Создание с Git репозиторием

pydvenv my_project venv --create-git-repository

Создаст проект с Git репозиторием и добавит venv в .gitignore.

Пример 3: С установкой зависимостей

pydvenv --requirements requirements.txt --requirements dev-requirements.txt

Создаст виртуальное окружение и установит зависимости из двух файлов.

Пример 4: С использованием всех возможностей

pydvenv my_project my_env \
  --system-site-packages \
  --create-git-repository \
  --requirements requirements.txt \
  --prompt "my_project" \
  --verbose

Особенности работы

Автоматическое управление .gitignore

При использовании флага --create-git-repository, pydvenv:

  1. Создает Git репозиторий (git init)
  2. Создает или обновляет файл .gitignore
  3. Автоматически добавляет имя виртуального окружения в .gitignore

Обработка requirements файлов

  • Поддерживаются локальные файлы и URL
  • Можно указать несколько requirements файлов
  • При использовании относительных путей, они разрешаются относительно исходной директории
  • Для URL поддерживаются стандартные форматы (https://, git+ и др.)

Кроссплатформенность

  • Автоматически определяет платформу (Windows/Linux/macOS)
  • Корректно формирует пути к скриптам (Scripts на Windows, bin на Unix-системах)

Требования

  • Python >= 3.10
  • Доступ к команде git (только при использовании флага --create-git-repository)

Разработка

Установка из исходников

git clone https://github.com/MagIlyasDOMA/pydvenv.git
cd pydvenv
pip install -e .[dev]

Зависимости для разработки

Указываются в файле dev_requirements.txt.

Лицензия

MIT License

Автор

Маг Ильяс DOMA (MagIlyasDOMA)

Ссылки


Примечание: Для активации созданного виртуального окружения следуйте инструкциям, которые выводятся после создания, или используйте стандартные команды для вашей операционной системы. Опция --copies особенно полезна при работе с сетевыми файловыми системами или файловыми системами, которые не поддерживают символические ссылки.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pydvenv-1.0.0.tar.gz (7.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pydvenv-1.0.0-py3-none-any.whl (7.0 kB view details)

Uploaded Python 3

File details

Details for the file pydvenv-1.0.0.tar.gz.

File metadata

  • Download URL: pydvenv-1.0.0.tar.gz
  • Upload date:
  • Size: 7.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for pydvenv-1.0.0.tar.gz
Algorithm Hash digest
SHA256 55966c8d2a94c52af67b2228373453c55c6b0e60ae92c6005a1ec5cfef4fc6a2
MD5 7bc4a6410b17344bfc7a4d4d7c8fead4
BLAKE2b-256 806557ac50d4599840a1f44b76c2d18cb20c0c43e2a6bca0a349f901c8a2a91c

See more details on using hashes here.

File details

Details for the file pydvenv-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: pydvenv-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 7.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for pydvenv-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5f2e19dcf77a919bf53809893dd027ed374fbf2356d18b99f43b8d418cdf4419
MD5 7a2d8a039cdb8a6b08266f7319fb75ef
BLAKE2b-256 4a5da1492a3fd8c92542b5078d0a53b0f766455b92f0f69ad2f8c931303e8705

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page