-
Notifications
You must be signed in to change notification settings - Fork 0
Инструкция по воссозданию окружения
Oleg Navolotsky edited this page Oct 24, 2018
·
7 revisions
Инструкция по воссозданию окружения компоненты для разработки
Кратко описано, как воссоздать виртуальное изолированное окружение с помощью virtualenv.
virtualenv — это инструмент, позволяющий создавать виртуальные окружения с пакетами. Разные "песочницы" имеют разный набор пакетов разных версий.
- Клонируете репозиторий компоненты
- Открываете папку проекта в VS Code
- Если virtualenv еще не установлен, то в терминале пишете:
python -m pip install virtualenv
- Из терминала VS Code (когда открыт проект):
virtualenv env
- Потом нужно будет выбрать новый интерпретатор, что лежит в папке env\Scripts
Это можно сделать в VS Code, если сможете найти, или просто создать папку .vscode (если не получается, допишите точку в конце .vscode.) в папке проекта, а в ней файл settings.json с содержимым:
{
"python.pythonPath": "env\\Scripts\\python.exe",
"python.linting.pylintPath": "env\\Scripts\\pylint.exe"
}
- Из терминала VS Code (когда открыт проект):
".\env\Scripts\python.exe" -m pip install -r requirements.txt
- Если это компонента link_analysis, то нужно установить web_crawler:
".\env\Scripts\python.exe" -m pip install "путь к web_crawler-0.1.tar.gz"
из терминала VS Code (когда открыт проект) - Желательно перезапустить VS Code, иногда он не сразу понимает, что что-то изменилось. Возможно, придётся сделать это и между шагами.
- Если при работе в виртуальном окружении 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)'
Готово. Теперь у вас полностью готовое окружение для разработки компоненты, никак не влияющее на пакеты, установленные глобально, и не испытывающее таковое влияние извне.