Add pip to windows path

Содержание
  1. Adding installed PIP package to path automatically
  2. 2 Answers 2
  3. How I install python based scripts into system
  4. Updating the script
  5. naming with virtualenvwrapper
  6. alternative with tox
  7. Установка PIP для Python и базовые команды
  8. Что такое PIP для Python?
  9. Устанавливается ли PIP вместе с Python?
  10. Правильно ли Python установлен?
  11. Как установить PIP на Windows.
  12. Как установить PIP на Mac
  13. Как установить PIP на Linux
  14. Как установить PIP на Raspberry Pi
  15. Как обновить PIP для Python
  16. Как устанавливать библиотеки Python с помощью PIP
  17. Появились вопросы? Задайте на Яндекс Кью
  18. HackWare.ru
  19. Этичный хакинг и тестирование на проникновение, информационная безопасность
  20. Как установить Python и PIP на Windows 10. Настройка Python в качестве модуля веб-сервера
  21. Как установить Python в Windows
  22. Как запускать программы Python в Windows
  23. Как начать изучать Python
  24. Как установить PIP в Windows
  25. Установка Средства сборки C++
  26. Как пользоваться PIP в Windows
  27. Подключение модуля Python к веб-серверу Apache в Windows
  28. Настройка Apache на запуск Python CGI
  29. Создайте тестовую страницу Python
  30. Редакторы исходного кода Python
  31. Решение ошибки error Microsoft Visual C++ 14.0 is required
  32. Ошибки при компиляции в Python
  33. Создание виртуальных окружений и установка библиотек для Python 3 в IDE PyCharm
  34. Установка Python и Pip
  35. Установка Python и Pip в Windows
  36. Установка Python и Pip в Ubuntu
  37. Основные команды Pip
  38. Установка VirtualEnv и VirtualEnvWrapper
  39. Установка VirtualEnv и VirtualEnvWrapper в Windows
  40. Установка VirtualEnv и VirtualEnvWrapper в Ubuntu
  41. Работа с виртуальным окружением VirtualEnv
  42. Установка PyCharm
  43. Установка PyCharm в Windows
  44. Установка PyCharm в Ubuntu
  45. Установка PyCharm в Ubuntu из snap-пакета
  46. Использование VirtualEnv и Pip в PyCharm
  47. Первый пример: использование собственного виртуального окружения для проекта
  48. Второй пример: использование предварительно созданного виртуального окружения
  49. Заключение

Adding installed PIP package to path automatically

For my package, foo, I’m using the following setup.py:

When testing on my Arch system, it added the script to PATH automatically so I could just run foo on my command line and it’d run the function main() automatically. Then, I booted up a VM and tested it on Windows 7. Pip installed the package just fine, but it wasn’t in my path!

2 Answers 2

\Scripts directory, where all of them install the script by default, is normally added to PATH by the Python installer during installation.

If the scripts folder was not added to your PATH during installation, you can fix that by running

The above sample setup.py file worked fine for me (with the Scripts directory in PATH), by the way. I tested it with

On Linux, if you use global Python environment, you are likely to need root privileges, so you typically do:

However, this is not recommended method as it spoils system-wide Python environment (imagine having two applications having a bit different requirements to the same package version and you might have a problem).

Recommended method is to use some sort of virtualenv, which allows installing python package into separate python environment, which is also easy to remove and recreate.

How I install python based scripts into system

It seems like you have custom python based script, which you want to use in your system.

For this scenario I use following method (assuming virtualenv tool is installed into system-wide python):

Now you shall have in

From now on, you shall be able calling command myscript even without virtualenv being activated.

Updating the script

If you need to install later version of the script:

As you have the script linked, it will automatically be available in the latest version.

naming with virtualenvwrapper

virtualenvwrapper allows you to create multiple named virtualenvs and give you easy activation and deactivation. In such case I do the following:

Upgrade is even simpler:

alternative with tox

tox is great tool for automated creation of virtualenvs and testing. I use it for creating virtualenvs in directories I like. For more information see my other SO answer

Источник

Установка PIP для Python и базовые команды

Как любой серьёзный язык программирования, Python поддерживает сторонние библиотеки и фреймворки. Их устанавливают, чтобы не изобретать колесо в каждом новом проекте. Необходимы пакеты можно найти в центральном репозитории Python — PyPI (Python Package Index — каталог пакетов Python).

Однако скачивание, установка и работа с этими пакетами вручную утомительны и занимают много времени. Именно поэтому многие разработчики полагаются на специальный инструмент PIP для Python, который всё делает гораздо быстрее и проще.

Что такое PIP для Python?

Если вы когда-нибудь работали с командной строкой Windows и с терминалом на Linux или Mac и чувствуете себя уверенно, можете пропустить инструкции по установке.

Устанавливается ли PIP вместе с Python?

Если вы пользуетесь Python 2.7.9 (и выше) или Python 3.4 (и выше), PIP устанавливается вместе с Python по умолчанию. Если же у вас более старая версия Python, то сначала ознакомьтесь с инструкцией по установке.

Правильно ли Python установлен?

Затем введите команду:

На Linux пользователям Python 3.x следует ввести:

Если вы получили номер версии (например, Python 2.7.5 ), значит Python готов к использованию.

Если вы получили сообщение Python is not defined (Python не установлен), значит, для начала вам следует установить Python. Это уже не по теме статьи. Подробные инструкции по установке Python читайте в теме: Скачать и установить Python.

Как установить PIP на Windows.

Следующие инструкции подойдут для Windows 7, Windows 8.1 и Windows 10.

Как установить PIP на Mac

Современные версии Mac идут с установленными Python и PIP. Так или иначе версия Python устаревает, а это не лучший вариант для серьёзного разработчика. Так что рекомендуется установить актуальные версии Python и PIP.

Если вы хотите использовать родную систему Python, но у вас нет доступного PIP, его можно установить следующей командой через терминал:

Если вы предпочитаете более свежие версии Python, используйте Homebrew. Следующие инструкции предполагают, что Homebrew уже установлен и готов к работе.

Установка Python с помощью Homebrew производится посредством одной команды:

Читайте также:  Grub2 запуск windows 10

Будет установлена последняя версия Python, в которую может входить PIP. Если после успешной установки пакет недоступен, необходимо выполнить перелинковку Python следующей командой:

Как установить PIP на Linux

Если у вас дистрибутив Linux с уже установленным на нем Python, то скорее всего возможно установить PIP, используя системный пакетный менеджер. Это более удачный способ, потому что системные версии Python не слишком хорошо работают со скриптом get-pip.py, используемым в Windows и Mac.

Advanced Package Tool (Python 2.x)

Advanced Package Tool (Python 3.x)

pacman Package Manager (Python 2.x)

pacman Package Manager (Python 3.x)

Yum Package Manager (Python 2.x)

Yum Package Manager (Python 3.x)

Dandified Yum (Python 2.x)

Dandified Yum (Python 3.x)

Zypper Package Manager (Python 2.x)

Zypper Package Manager (Python 3.x)

Как установить PIP на Raspberry Pi

Как пользователь Raspberry, возможно, вы запускали Rapsbian до того, как появилась официальная и поддерживаемая версия системы. Можно установить другую систему, например, Ubuntu, но в этом случае вам придётся воспользоваться инструкциями по Linux.

Начиная с Rapsbian Jessie, PIP установлен по умолчанию. Это одна из серьёзных причин, чтобы обновиться до Rapsbian Jessie вместо использования Rapsbian Wheezy или Rapsbian Jessie Lite. Так или иначе, на старую версию, все равно можно установить PIP.

На Rapsbian для Python 2.x следует пользоваться командой pip, а для Python 3.x — командой pip3 при использовании команд для PIP.

Как обновить PIP для Python

Пока PIP не слишком часто обновляется самостоятельно, очень важно постоянно иметь свежую версию. Это может иметь значение при исправлении багов, совместимости и дыр в защите.

К счастью, обновление PIP проходит просто и быстро.

Для Mac, Linux, или Raspberry Pi:

На текущих версиях Linux и Rapsbian Pi следует использовать команду pip3.

Как устанавливать библиотеки Python с помощью PIP

Если PIP работоспособен, можно начинать устанавливать пакеты из PyPI:

Установка определённой версии вместо новейшей версии пакета:

Поиск конкретного пакета:

Просмотр деталей об установленном пакете:

Список всех установленных пакетов:

Список всех устаревших пакетов:

Обновление устаревших пакетов:

Следует отметить, что старая версия пакета автоматически удаляется при обновлении до новой версии.

Полностью переустановить пакет:

Полностью удалить пакет:

Появились вопросы? Задайте на Яндекс Кью

У блога есть сообщество на Кью >> Python Q 7 900 5 825 ₽/мес.

Источник

HackWare.ru

Этичный хакинг и тестирование на проникновение, информационная безопасность

Как установить Python и PIP на Windows 10. Настройка Python в качестве модуля веб-сервера

Язык Python является в настоящее время очень популярным и многие инструменты для сбора информации, сканирования, тестирования на проникновение, оценки безопасности написаны на Python. Все эти инструменты без проблем работают в Linux. Но на самом деле, подавляющее большинство инструментов может работать и в Windows — достаточно просто выполнить несложную установку Python.

Python — это скриптовый (интерпретируемый) язык, то есть программы перед запуском не нужно предварительно компилировать. В этом смысле Python похож на PHP.

В настоящее время существует две главных версии Python:

Они существенно различаются между собой, в том числе и синтаксисом, то есть программа, написанная на одной версии, может не работать в интерпретаторе другой версии. Тем не менее сейчас уже обозначен срок завершения поддержки Python 2.x и эту версию можно считать устаревшей. Поэтому я предлагаю установить только Python 3. Хотя если вы не согласны, то пишите в комментариях и я дополню инструкцию установкой второй версии. Хоть мы не получим старую версию, зато я дополнительно покажу, как установить PIP — систему управления пакетами Python, — а также как подключить Python в качестве модуля веб-сервера — то есть он сможет выполнять такие же функции, что и PHP.

Как установить Python в Windows

Для Python 3.x также много активно поддерживаемых веток:

Последней стабильной версией на момент написания является Python 3.8.x.

Помните, что Python не будет работать на Windows XP или более ранних.

Кстати, ведь Python есть и в магазине приложений Windows,

где у него одна звезда (из пяти) и один отзыв (что ничего не работает):

Поэтому мы выполним установку с помощью официального установщика — это совсем просто.

Для скачивания установочного файла, перейдите на страницу загрузки установочных файлов для Windows: https://www.python.org/downloads/windows/

Выберите последний выпуск Python 3, на скриншоте это Python 3.8.0.

Пролистните страницу вниз и найдите «Windows x86-64 executable installer»:

Запустите скаченный файл:

Во-первых, поставьте галочку «Add Python 3.8 to PATH». Это нужно для того, что когда вы будете запускать скрипт на Python, вам не нужно будет указывать полный путь до интерпретатора.

Во-вторых, я рекомендую изменить папку, куда будет выполнена установка. Для этого кликните «Customize installation».

В этом окне ничего не меняем, главное убедитесь, что стоит галочка напротив pip:

В этом окне убедитесь, что стоит галочка «Add Python to environment variables» и поменяйте папку установки на «C:\Python\Python38»:

Нажмите кнопку «Install»:

И… всё готово! Согласитесь, это было реально просто.

У меня в Windows уже включена поддержка путей файлов длиной более 260 символов, но если у вас ещё это не сделано, то установщик в конце предложит это — чтобы это сделать, нажмите «Disable path length limit». Эта настройки ни на что плохо не влияет. Но нужно помнить, что старые программы по-прежнему могут быть неспособны работать с файлами, пути которых имеют более 260 символов.

Смотрите подробности в статьях:

Для проверки, откройте командную строку: нажмите Win+x и выберите «Windows PowerShell»:

Откроется PowerShell. Если вам привычнее обычная командная строка Windows (CMD), то нажмите Win+r и введите

В любом из открывшихся окон введите:

Должна появится версия Python, например:

Как запускать программы Python в Windows

Поскольку многие скрипты Python представляют собой утилиты с интерфейсом командной строки, то запускать их нужно в командной строке, иначе при двойном клике программа будет быстро завершать работу и вы ничего не увидите кроме мелькнувшего окна.

Для запуска откройте командную строку и запустите команду вида:

Читайте также:  Error while enabling windows feature netfx3

Пример простой программы hello_world.py:

Как начать изучать Python

Как установить PIP в Windows

PIP — это менеджер пакетов, с помощью которого можно искать, устанавливать, обновлять и удалять пакеты Python. В качестве пакетов могут быть как библиотеки, которые являются зависимостями для других программ, так и полноценные программы. Причём PIP правильно обрабатывает зависимости — если для работы программы требуется другие пакеты Python, то PIP их также установит.

В Linux некоторые пакеты Python упакованы в качестве пакетов дистрибутива и распространяются через стандартные репозитории — но таких пакетов меньше, чем доступно в pip. Поэтому в Linux программа pip также используется. Что касается Windows, то здесь pip является самым удобным способом установить нужный пакет.

При установке среды Python описанным выше способом, менеджер пакетов pip также должен установиться. Вы можете проверить это:

Обновите важные компоненты:

Установка Средства сборки C++

Это опциональный шаг при установке pip — но если вы его пропустите, при попытке установить некоторые пакеты вы будете сталкиваться с ошибками.

На самом деле, при установке пакетов с помощью pip иногда выполняется в том числе и компиляция, чтобы это происходило без проблем, необходимо ещё и установить «Средства сборки C++». Для их установки скачайте и запустите файл vs_buildtools.exe. Во вкладке «Рабочие нагрузки» поставьте галочку «Средства сборки C++» и нажмите кнопку «Установить»:

Как пользоваться PIP в Windows

Для установки выполните команду вида:

В качестве примера попробуем установить программу hashID — это инструмент, написанный на Python 3, который поддерживает идентификацию более 220 уникальных типов хешей используя регулярные выражения.

Пример запуска hashID в Windows после установки:

Подключение модуля Python к веб-серверу Apache в Windows

Python может работать как модуль Apache, в этом случае скрипты Python будут выполнятся как, например, выполняются PHP скрипты. Причём оба интерпретатора могут работать одновременно.

Подразумевается, что Python у вас установлен по вышеприведённой инструкции, а веб-сервер установлен по инструкции «Установка веб-сервера (Apache 2.4, MySQL 8.0, PHP 7, phpMyAdmin) на Windows 10».

Настройка Apache на запуск Python CGI

Откройте для редактирования конфигурационный файл Apache httpd.conf, у меня он расположен по пути C:\Server\bin\Apache24\conf\httpd.conf.

Найдите там строку

и добавьте к ней ExecCGI. Должна получиться такая строка (ВНИМАНИЕ: набор опций у вас может быть другим):

Теперь найдите строку:

Раскомментируйте её, то есть удалите символ # в начале строки и добавьте к концу строки .py. Новая строка будет выглядеть примерно так:

Создайте тестовую страницу Python

В папке для ваших сайтов (у меня это C:\Server\data\htdocs\) создайте файл test.py и скопируйте в него:

Обратите внимание на самую верхнюю строку, то есть на C:\Python\Python38\python.exe — вам нужно заменить её на своё значение, указав путь до файла python.exe. Если у вас версия 3.9, то этой папкой может быть C:\Python\Python39\python.exe, то есть название папки может различаться в зависимости от установленной версии и путь до папки также может различаться в зависимости от того, какой вы выбрали при установке.

Должна будет появиться надпись

Как показано на скриншоте ниже:

Редакторы исходного кода Python

Если вы устанавливаете Python не только для запуска программ, но и для изучения языка программирования Python, то вам понадобятся редакторы исходного кода. Я могу порекомендовать парочку абсолютно бесплатных:

Решение ошибки error Microsoft Visual C++ 14.0 is required

При использовании менеджера пакетов pip на Windows вы можете столкнуться с ошибкой:

Начиная с 2017 самая новая версия Visual Studio может заменить любую требуемую версию Build Tools (инструментов сборки) C++. Для установки последней версии, скачайте и запустите файл vs_buildtools.exe. Во вкладке «Рабочие нагрузки» поставьте галочку «Средства сборки C++» и нажмите кнопку «Установить»:

Дополнительно выполните обновление setuptools:

Ошибки при компиляции в Python

Иногда при установке пакетов с помощью pip вы будете сталкиваться с ошибками вроде такой:

В ней сказано, что компиляция завершилась ошибкой из-за того, что не найден файл cairo.h.

В этой ошибке сказано, что компиляция завершилась ошибкой из-за того, что не найден файл netinet/ip.h.

Точно такие же ошибки из-за отсутствия файлов с расширением .h могут возникать и в Linux. Файлы с расширением .h являются так называемыми заголовками — то есть файлами исходного кода для импорта в другие приложения. В каждом случае придётся индивидуально выяснять, к какому пакету относится отсутствующий файл и устанавливать этот пакет.

Источник

Создание виртуальных окружений и установка библиотек для Python 3 в IDE PyCharm

Язык программирования Python считается достаточно простым. На нем легче и быстрее пишутся программы, по сравнению с компилируемыми языками программирования. Для Python существует множество библиотек, позволяющих решать практически любые задачи. Есть, конечно, и минусы и другие нюансы, но это отдельная тема.

Довольно часто я вижу, как мои знакомые и друзья начинают изучать Python и сталкиваются с проблемой установки и использования сторонних библиотек. Они могут несколько часов потратить на установку библиотеки, и даже, могут не справиться с этим и забить на неё. В то время как, в большинстве случаев, это можно было сделать за несколько минут.

Статья начинается с базовых вещей: с установки Python 3, инструментов разработки Pip и Virtualenv и среды разработки PyCharm в Windows и в Ubuntu. Для многих это не представляет трудностей и возможно, что уже всё установлено.

После чего будет то, ради чего задумывалась статья, я покажу как в PyCharm создавать и использовать виртуальные окружения и устанавливать в них библиотеки с помощью Pip.

Установка Python и Pip

Pip является менеджером пакетов для Python. Именно с помощью него обычно устанавливаются модули/библиотеки для разработки в виде пакетов. В Windows Pip можно установить через стандартный установщик Python. В Ubuntu Pip ставится отдельно.

Установка Python и Pip в Windows

Для windows заходим на официальную страницу загрузки, где затем переходим на страницу загрузки определенной версии Python. У меня используется Python 3.6.8, из-за того, что LLVM 9 требует установленного Python 3.6.

Во время установки ставим галочку возле Add Python 3.x to PATH и нажимаем Install Now:

Установка Python и Pip в Ubuntu

В Ubuntu установить Python 3 можно через терминал. Запускаем его и вводим команду установки. Вторая команда выводит версию Python.

Читайте также:  Windows 7 обновление на 10 дней

Далее устанавливаем Pip и обновляем его. После обновления необходимо перезапустить текущую сессию (или перезагрузить компьютер), иначе возникнет ошибка во время вызова Pip.

Основные команды Pip

Рассмотрим основные команды при работе с Pip в командой строке Windows и в терминале Ubuntu.

Установка VirtualEnv и VirtualEnvWrapper

VirtualEnv используется для создания виртуальных окружений для Python программ. Это необходимо для избежания конфликтов, позволяя установить одну версию библиотеки для одной программы, и другу для второй. Всё удобство использования VirtualEnv постигается на практике.

Установка VirtualEnv и VirtualEnvWrapper в Windows

В командной строке выполняем команды:

Установка VirtualEnv и VirtualEnvWrapper в Ubuntu

Для Ubuntu команда установки будет следующей:

После которой в конец

Работа с виртуальным окружением VirtualEnv

Рассмотрим основные команды при работе с VirtualEnv в командой строке Windows и в терминале Ubuntu.

Команда Описание
mkvirtualenv env-name Создаем новое окружение
workon Смотрим список окружений
workon env-name Меняем окружение
deactivate Выходим из окружения
rmvirtualenv env-name Удаляем окружение

Установка PyCharm

PyCharm — интегрированная среда разработки для языка программирования Python. Обладает всеми базовыми вещами необходимых для разработки. В нашем случае огромное значение имеет хорошее взаимодействие PyCharm с VirtualEnv и Pip, чем мы и будем пользоваться.

Установка PyCharm в Windows

Скачиваем установщик PyCharm Community для Windows с официального сайта JetBrains. Если умеете проверять контрольные суммы у скаченных файлов, то не забываем это сделать.

В самой установке ничего особенного нету. По сути только нажимаем на кнопки next, и в завершение на кнопку Install. Единственно, можно убрать версию из имени папки установки, т.к. PyCharm постоянно обновляется и указанная версия в будущем станет не правильной.

Установка PyCharm в Ubuntu

Скачиваем установщик PyCharm Community для Linux с официального сайта JetBrains. Очень хорошей практикой является проверка контрольных сумм, так что если умеете, не ленитесь с проверкой.

Теперь в директории

Далее выполняем команды в терминале:

Производим установку. И очень важно в конце не забыть создать desktop файл для запуска PyCharm. Для этого в Окне приветствия в нижнем правом углу нажимаем на ConfigureCreate Desktop Entry.

Установка PyCharm в Ubuntu из snap-пакета

PyCharm теперь можно устанавливать из snap-пакета. Если вы используете Ubuntu 16.04 или более позднюю версию, можете установить PyCharm из командной строки.

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

Поддержка Pip и Virtualenv в PyCharm появилась уже довольно давно. Иногда конечно возникают проблемы, но взаимодействие работает в основном стабильно.

Рассмотрим два варианта работы с виртуальными окружениями:

Первый пример: использование собственного виртуального окружения для проекта

Создадим программу, генерирующую изображение с тремя графиками нормального распределения Гаусса Для этого будут использоваться библиотеки matplotlib и numpy, которые будут установлены в специальное созданное виртуальное окружение для программы.

Запускаем PyCharm и окне приветствия выбираем Create New Project.

В мастере создания проекта, указываем в поле Location путь расположения создаваемого проекта. Имя конечной директории также является именем проекта. В примере директория называется ‘first_program’.

Теперь установим библиотеки, которые будем использовать в программе. С помощью главного меню переходим в настройки FileSettings. Где переходим в Project: project_nameProject Interpreter.

Здесь мы видим таблицу со списком установленных пакетов. В начале установлено только два пакета: pip и setuptools.

Справа от таблицы имеется панель управления с четырьмя кнопками:

Для добавления (установки) библиотеки в окружение нажимаем на плюс. В поле поиска вводим название библиотеки. В данном примере будем устанавливать matplotlib. Дополнительно, через Specify version можно указать версию устанавливаемого пакета и через Options указать параметры. Сейчас для matplotlib нет необходимости в дополнительных параметрах. Для установки нажимаем Install Package.

После установки закрываем окно добавления пакетов в проект и видим, что в окружение проекта добавился пакет matplotlib с его зависимостями. В том, числе был установлен пакет с библиотекой numpy. Выходим из настроек.

Теперь мы можем создать файл с кодом в проекте, например, first.py. Код программы имеет следующий вид:

Далее указываем в поле Name имя конфигурации и в поле Script path расположение Python файла с кодом программы. Остальные параметры не трогаем. В завершение нажимаем на Apply, затем на OK.

Теперь можно выполнить программу и в директории с программой появится файл gauss.png :

Второй пример: использование предварительно созданного виртуального окружения

Данный пример можно использовать во время изучения работы с библиотекой. Например, изучаем PySide2 и нам придется создать множество проектов. Создание для каждого проекта отдельного окружения довольно накладно. Это нужно каждый раз скачивать пакеты, также свободное место на локальных дисках ограничено.

Более практично заранее подготовить окружение с установленными нужными библиотеками. И во время создания проектов использовать это окружение.

В этом примере мы создадим виртуальное окружения PySide2, куда установим данную библиотеку. Затем создадим программу, использующую библиотеку PySide2 из предварительно созданного виртуального окружения. Программа будет показывать метку, отображающую версию установленной библиотеки PySide2.

Далее в созданном окружении устанавливаем пакет с библиотекой PySide2, также как мы устанавливали matplotlib. И выходим из настроек.

Теперь мы можем создавать новый проект использующий библиотеку PySide2. В окне приветствия выбираем Create New Project.

Для проверки работы библиотеки создаем файл second.py со следующий кодом:

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

Заключение

У меня нет богатого опыта программирования на Python. И я не знаком с другими IDE для Python. Поэтому, возможно, данные IDE также умеют работать с Pip и Virtualenv. Использовать Pip и Virtualenv можно в командой строке или в терминале. Установка библиотеки через Pip может завершиться ошибкой. Есть способы установки библиотек без Pip. Также создавать виртуальные окружения можно не только с помощью Virtualenv.

В общем, я лишь поделился небольшой частью опыта из данной области. Но, если не вдаваться в глубокие дебри, то этого вполне достаточно знать, чтобы писать простые программы на Python с использованием сторонних библиотек.

Источник

Поделиться с друзьями
Советы экспертов и специалистов
Adblock
detector