Skip to content

Инструкция по воссозданию окружения

Oleg Navolotsky edited this page Oct 24, 2018 · 7 revisions

Инструкция по воссозданию окружения компоненты для разработки

Кратко описано, как воссоздать виртуальное изолированное окружение с помощью virtualenv.
virtualenv — это инструмент, позволяющий создавать виртуальные окружения с пакетами. Разные "песочницы" имеют разный набор пакетов разных версий.

  1. Клонируете репозиторий компоненты
  2. Открываете папку проекта в VS Code
  3. Если virtualenv еще не установлен, то в терминале пишете: python -m pip install virtualenv
  4. Из терминала VS Code (когда открыт проект): virtualenv env
  5. Потом нужно будет выбрать новый интерпретатор, что лежит в папке env\Scripts Это можно сделать в VS Code, если сможете найти, или просто создать папку .vscode (если не получается, допишите точку в конце .vscode.) в папке проекта, а в ней файл settings.json с содержимым:
    {
    "python.pythonPath": "env\\Scripts\\python.exe",
    "python.linting.pylintPath": "env\\Scripts\\pylint.exe"
    }
  6. Из терминала VS Code (когда открыт проект): ".\env\Scripts\python.exe" -m pip install -r requirements.txt
  7. Если это компонента link_analysis, то нужно установить web_crawler: ".\env\Scripts\python.exe" -m pip install "путь к web_crawler-0.1.tar.gz" из терминала VS Code (когда открыт проект)
  8. Желательно перезапустить VS Code, иногда он не сразу понимает, что что-то изменилось. Возможно, придётся сделать это и между шагами.
  9. Если при работе в виртуальном окружении pylint сообщает о неудачной попытке импорта модулей проекта, нужно добавить в файл env\Lib\site-packages\pylint\test\regrtest_data\.pylintrc следующие строки:
    [MASTER]
    init-hook='base_dir="НАЗВАНИЕ ПАПКИ ПРОЕКТА"; import sys,os,re; _re=re.search(r".+\/" + base_dir, os.getcwd()); project_dir = _re.group() if _re else os.path.join(os.getcwd(), base_dir); sys.path.append(project_dir)'

Готово. Теперь у вас полностью готовое окружение для разработки компоненты, никак не влияющее на пакеты, установленные глобально, и не испытывающее таковое влияние извне.