В Windows политика безопасности PowerShell может ограничивать выполнение скриптов. Если вы столкнулись с проблемами при запуске скриптов проекта, выполните следующие действия для настройки политики безопасности:
-
Запустите PowerShell от имени администратора.
-
Выполните следующую команду для разрешения выполнения скриптов в текущей директории и всех поддиректориях:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process
Set-ExecutionPolicy: Команда для изменения политики выполнения скриптов.-ExecutionPolicy RemoteSigned: Устанавливает политику, разрешающую выполнение локально созданных скриптов и скриптов, подписанных доверенным издателем.-Scope Process: Указывает, что политика применяется только к текущему процессу PowerShell. Это наиболее безопасный вариант, так как изменения не сохраняются глобально.
Внимание: Если требуется более широкая область действия, можно использовать
-Scope CurrentUserили-Scope LocalMachine, но это может снизить безопасность системы.После выполнения команды вам может быть предложено подтвердить изменения. Введите
Y(Да) и нажмите Enter.❗Важно: Изменение политики безопасности PowerShell может повлиять на безопасность вашей системы. Будьте внимательны и используйте только необходимые параметры.
Для запуска модуля webdriver проекта hypotez необходимо установить все необходимые зависимости
для работы модуля
Выполните следующие команды в командной строке или терминале:
-
Обновление
pip(рекомендуется):python.exe -m pip install --upgrade pip
Эта команда обновит установленный менеджер пакетов
pipдо последней версии. -
Установка зависимостей проекта:
pip install jupyter selenium pandas json-repair reportlab A4 fake-useragent aiofiles aiohttp beautifulsoup4 lxml Pillow pydantic
Эта команда установит все необходимые пакеты, перечисленные в списке:
jupyter: Для создания и запуска Jupyter Notebooks.selenium: Для автоматизации веб-браузеров.pandas: Для анализа и обработки данных.json-repair: Для восстановления поврежденных JSON.reportlab: Для создания PDF-документов.A4: Определения размера бумаги A4fake-useragent: Для генерации поддельных User-Agent.aiofiles: Для асинхронной работы с файлами.aiohttp: Для асинхронных HTTP-запросов.beautifulsoup4: Для парсинга HTML и XML.lxml: Для быстрой обработки XML и HTML.Pillow: Для работы с изображениями.pydantic: Для валидации данных и настроек.
Альтернативный способ установки (если есть файл requirements.txt):
pip install -r requirements.txtДиректория src содержит исходный код проекта hypotez.
❗Важно: Для разработки собственного кода и экспериментов рекомендуется создать отдельную директорию в папке SANDBOX.
Подробней 👉 Как начать разработку в Sandbox
-
header.py:- Назначение: Содержит функцию
set_project_root, которая определяет корневую директорию проекта. - Функциональность: Функция ищет маркерные файлы (например,
__root__или.git) в родительских директориях, чтобы определить корень проекта. Добавляет корень проекта вsys.path, чтобы обеспечить возможность импорта модулей из любой части проекта. - Пути: Определяет и экспортирует переменную
__root__, содержащую путь к корневой директории проекта.
- Назначение: Содержит функцию
-
__init__.py:- Назначение: Инициализирует пакет
srcи определяет, откуда загружать секреты (API-ключи и т.д.). - Логика:
- Определяет переменную
USE_ENV:bool, которая управляет способом загрузки секретов. - Если
USE_ENVравноTrue, импортирует модульgsизgs.pyи загружает секреты из файлов.env. - Если
USE_ENVравноFalse, импортирует модульgsизcredentials.pyи загружает секреты из объектаgs(например,token = gs.path.telegram.kazarinov_bot). - Вызывает функцию
check_latest_releaseдля проверки наличия новой версии проекта на GitHub.
- Определяет переменную
- Назначение: Инициализирует пакет
-
check_release.py:- Назначение: Содержит функцию
check_latest_release, которая проверяет наличие новой версии проекта на GitHub. - Функциональность: Функция делает запрос к API GitHub для получения информации о последнем релизе и возвращает его версию. В случае ошибки логирует сообщение об ошибке.
- Назначение: Содержит функцию
-
config.json:- Назначение: Файл конфигурации в формате JSON, содержащий основные настройки проекта (хост, репозиторий, пути к различным директориям и т.д.).
- Структура:
host: Хост для запуска приложения.git: Название репозитория.git_user: Имя пользователя GitHub.current_release: Текущая версия релиза.path: Объект, содержащий пути к различным директориям (внешнее хранилище, Google Drive, логи, временные файлы).timestamp_format: Формат временной метки.
-
gs.py:- Назначение: Загружает параметры программы, если флаг
USE_ENVустановлен вTrue. - Функциональность: Загружает конфигурацию из файла
config.jsonи создает объектgs, аналогичный тому, который создается вcredentials.py, но без параметров учетных данных. Используется, когда не требуется полная загрузка параметров из KeePass.
- Назначение: Загружает параметры программы, если флаг
Файл config.json содержит объект path, который определяет пути к различным директориям проекта. Важно правильно настроить эти пути, чтобы обеспечить корректную работу приложения.
Пример конфигурации путей:
"path": {
"external_storage": "E:\\hypo69\\data",
"google_drive": "H:\\My Drive\\hypotez\\data",
"log": "E:\\hypo69\\log",
"tmp": "E:\\hypo69\\tmp"
}external_storage: Путь к внешнему хранилищу данных.google_drive: Путь к локальной директории Google Drive.log: Путь к директории для хранения логов.tmp: Путь к директории для хранения временных файлов.
Рекомендации по настройке путей:
- Укажите абсолютные пути, чтобы избежать проблем с относительными путями.
- Убедитесь, что директории, указанные в
config.json, существуют на вашей системе. - Настройте пути в соответствии с вашей структурой хранения данных и логов.
- Учитывайте особенности операционной системы (например, используйте
\в Windows и/в Unix).
Если вам необходимо клонировать репозиторий webdriver с GitHub, выполните следующие действия:
-
Установите Git:
Если у вас еще не установлен Git, скачайте и установите его с официального сайта: https://git-scm.com/downloads
-
Откройте командную строку или терминал.
-
Перейдите в директорию, куда хотите клонировать репозиторий.
Например:
cd /path/to/your/projects -
Выполните команду клонирования:
git clone https://github.com/hypo69/webdriver.git
Эта команда клонирует репозиторий
webdriverв локальную директорию.Примечание: Замените
https://github.com/hypo69/webdriver.gitна фактический URL репозитория, если он отличается. -
Перейдите в директорию клонированного репозитория:
cd webdriver
Для разработки собственного кода и экспериментов рекомендуется создать отдельную директорию в папке SANDBOX.
Подробные инструкции смотрите в файле README.md в директории SANDBOX.