Файл: Python среди других языков программирования python.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 07.12.2023

Просмотров: 27

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.


    • Каждый проект обладает собственным набором зависимостей, которые доступны только ему.

    • Все проекты используют единый набор зависимостей, который еще называют общесистемным.

Большая проблема Python — использование подхода с общесистемным набором зависимостей по умолчанию. Суть подхода заключается в том, что все модули устанавливают в одно место на вашем компьютере. В вашей системе установлен интерпретатор (или несколько) и все зависимости, которые вы ставите, например, с помощью модуля pip, ставятся в папку с этим интерпретатором. Таким образом любой проект, использующий этот интерпретатор, будет использовать все модули, которые в нем установлены.



Отсюда вытекают следующие проблемы:

      • Модули различаются лишь названиями, то есть нельзя иметь одновременно два установленных одинаковых модуля разных версий. Нельзя одновременно поставить pandas-0.21 и pandas-0.24.

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

Решить эти недостатки позволяют так называемые виртуальные окружения (англ. Virtual Environments). Вы можете создать «виртуальное окружение», внутри которого копируется интерпретатор, от которого данное окружение было создано, и стандартные модули (ossys, etc…).

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

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

Создавая виртуальное окружение, вы изолируетесь от других проектов. Например, на картинке ниже находится три разных интерпретатора Python версий 2.73.6, 3.4, и для каждого из них доступен свой набор модулей. В каждом из виртуальных окружений доступны два модуля — Py2neo и Django, но различных версий. В общесистемном подходе к хранению зависимостей вы бы могли хранить только одну версию каждого из модулей.




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



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

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

Такой файл с скомпилированным байт-кодом создаётся каждый раз, когда вы модифицируете свою программу. Если вы ничего не меняли, а просто повторно запустили свою программу, то процесс компиляции пропускается и выполняется сразу байт-код. Байт-код выполняется построчно, то есть выполняется не строка исходного текста, а её представление в виде набора единиц и нулей. Поэтому язык программирования Python является интерпретируемым языком программирования.

В общем виде процесс работы интерпретатора выглядит так:



Давайте теперь попробуем самостоятельно запустить свою программу с помощью интерпретатора, а не с помощью графического интерфейса PyCharm. Для начала запустим Terminal в PyCharm.



Если вы используете виртуальное окружение, то у вас будет высвечиваться вот такая приставка.




Если её нет, то вы работаете с системным интерпретатором: все пакеты, которые вы устанавливаете, будут доступны всем проектам, которые работают с этим системным интерпретатором.

Однако разработчики PyCharm немного изменили подход к созданию виртуального окружения, поэтому в последних версиях вы можете не получить желаемый результат (появление venv в терминале) даже после выполнения всех шагов. Наиболее простой способ исправить эту проблему — нажать на стрелку в верхней части терминала и выбрать Command prompt — стандартную командную строку Windows.



После этого должен появиться venv