Настройка окружения разработчика в MS Visual Studio Code
========================================================

**MS Visual Studio Code** - кроссплатформенная среда разработки с бесплатной лицензией, которую можно использовать для разработки в **Аксиоме.ГИС**.
Ее можно скачать с официального сайта: `Visual Studio Code <https://code.visualstudio.com/>`_.

Перед началом в установленной **MS Visual Studio Code** необходимо установить расширение **Python**.
Это можно сделать во вкладке Extensions (*Ctrl+Shift+X*).

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

#.	Чтобы подключать необходимые для работы модули, не входящие в пакеты **Аксиомы.ГИС**, требуется создать виртуальное окружение. 
	Для этого в командную строку терминала **MS VSC** (*Ctrl+Shift+`*) надо ввести команду *"путь\\до\\python.exe\\в\\папках\\Axioma.GIS" -m venv .venv --system-site-packages"*. 
	
	Например:
	
	.. code-block:: bash
	
		"C:\\Axioma.GIS\\bin\\python\\python.exe" -m venv .venv --system-site-packages
		
	В вашей рабочей директории появится папка *".venv"*, а **MS VSC** предложит выбрать в качестве нового окружения только что созданное виртуальное (его так же можно выбрать через *Ctrl+Shift+P* -> *Python: Select Interpreter*). 
	
	.. note::
		Установка пакетов выполняется командой в терминале *".venv\\Scripts\\python.exe" -m pip install package*, например для модуля **numpy**:
		
		.. code-block:: bash
	
			".venv\\Scripts\\python.exe" -m pip install numpy
	
	**Создание виртуального окружения:**
	
	.. image:: images/visual_studio_code/VSC_Screen_1.png
		:alt: Создание виртуального окружения

	**Выбор виртуального окружения:**
	
	.. image:: images/visual_studio_code/VSC_Screen_2.png
		:alt: Выбор виртуального окружения


#.	В силу особенностей **Аксиомы.ГИС** для корректной работы всех ее пакетов, если вы используете ОС Windows, необходимо в рабочей директории создать файл для переменных среды *".env"* и в нем написать строчку *"PROJ_LIB=Путь\\до\\папки\\Axioma.GIS\\share\\proj"*.
	
	Например:
	
	.. code-block:: bash
	
		PROJ_LIB=C:\\Axioma.GIS\\share\\proj
	
	Так же в файле *"settings.json"* из папки *".vscode"* добавить параметр:
	
	.. code-block:: bash
	
		"python.envFile": "${workspaceFolder}/.env"
	
	Если же вы используете Linux, то в *"settings.json"* нужно выполнить те же действия, а в файл *".env"* необходимо написать следующие строки (при установке **Аксиомы.ГИС** в папку *"/opt/Axioma.GIS"*): 
	
	.. code-block:: bash
	
		LD_LIBRARY_PATH=/opt/Axioma.GIS/bin:/opt/Axioma.GIS/bin/plugins:/opt/Axioma.GIS/python/lib
		AXIOMA_HOME=/opt/Axioma.GIS/sbin	
		QT_PLUGIN_PATH=/opt/Axioma.GIS/bin/qtplugins
		AXIOMA_DATA=/opt/Axioma.GIS/share/axioma
		AXIOMA_PYTHON_HOME=/opt/Axioma.GIS/python	
		AXIOMA_PYTHON_PLUGINS=/opt/Axioma.GIS/bin/python_plugins	
		AXIOMA_PYTHON_BINDINGS=/opt/Axioma.GIS/python/lib/python3.5/site-packages
		AXIOMA_PLUGINS=/opt/Axioma.GIS/bin/plugins
	
	**Для Windows:**
	
	.. image:: images/visual_studio_code/VSC_Screen_3.png
		:alt: Создание переменной *PROJ_LIB*
	
	**Для Linux:**
	
	.. image:: images/visual_studio_code/VSC_Screen_7.png
		:alt: Создание переменных для Linux
	
	**Для обеих операционных систем:**
	
	.. image:: images/visual_studio_code/VSC_Screen_4.png
		:alt: Добавление в *"settings.json"* пути до файла *".env"*
	
	
#.	Далее необходимо создать новую конфигурацию для отладки. Во вкладке **Debug** нужно выбрать функцию *"Add configuration..."*, а в появившемся списке выбрать *Python File*. 
	
	В возникшем в папке .vscode файле *"launch.json"* требуется добавить параметр (если этого не произошло автоматически):
	
	.. code-block:: bash
	
		"pythonPath": "${config:python.pythonPath}"
	
	**Открытие вкладки Debug:**
	
	.. image:: images/visual_studio_code/VSC_Screen_5.png
		:alt: Открытие вкладки **Debug**
		
	**Редактирование файла "launch.json":**
		
	.. image:: images/visual_studio_code/VSC_Screen_6.png
		:alt: Редактирование файла *"launch.json"*
		
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Теперь вы можете использовать **MS Visual Studio Code** для разработки под **Аксиомой.ГИС**.

.. seealso:: :doc:`vs_code_attach`

|
