Skip to content

Latest commit

 

History

History
125 lines (113 loc) · 10.4 KB

python.md

File metadata and controls

125 lines (113 loc) · 10.4 KB

1. Установка Python

Сначала посмотрите какая версия Python установлена в вашей системе. Для этого выполните команду:

 python3 --version

Новая версия, Python 3.9 доступна в репозиториях universe. Поэтому вам нет необходимости добавлять PPA, достаточно просто обновить систему и установить пакет нужной версии. Для этого наберите:

 sudo apt update
 sudo apt install python3.9

Обратите внимание, что старая версия никуда не делась, она по-прежнему доступна по имени python3, а новая теперь может быть загружена командой python 3.9. Если вы хотите использовать эту версию вместо 3.8 для запуска всех программ нужно выбрать её в качестве версии по умолчанию. Но я бы не рекомендовал этого делать. Множество системных программ написаны на Python и протестированы именно с версией, поставляемой по умолчанию. Если вы измените версию что-то может перестать работать. Если вы всё же решились надо сначала добавить альтернативы:

2. Установка пакетов

Для управления программными пакетами Python используется инструмент pip, предназначенный для установки и управления пакетами программирования.

sudo apt install -y python3-pip

Пакеты Python можно установить с помощью следующей команды:

pip3 install package_name

Чтобы создать виртуальную среду, мы используем модуль venv. Это удобный инструмент для управления зависимостями и изоляции проектов, который выстроен в Python, начиная с версии Python 3.3+. Поэтому модуль venv нельзя использовать для изоляции программ Python 2. Установка venv:

sudo apt-get install python3-venv -y

Создание проекта

Приступим к созданию проекта. Первым делом следует создать папку проекта и перейти в нее, в Linux это можно сделать при помощи следующих команд:

$ mkdir my_python_project
cd my_python_project

Создание виртуальной среды

Теперь создадим в этой папке виртуальную среду:

python3 -m venv project_name_myproject

Активация виртуальной среды

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

source project_name_myproject/bin/activate

Проверка установленных пакетов

Теперь проверим установленные пакеты pip внутри виртуальной среды:

pip3 list

Выход из виртуальной среды

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

deactivate

Перенос установленных пакетов

Для переноса установленных пакетов в другую среду на Linux можно использовать простую команду:

python3 -m pip freeze > requirements.txt

Она создаст файл requirements.txt, в котором будет находится список всех установленных пакетов.

Импорт пакетов в другую среду

Теперь можно перейти в другую виртуальную среду и импортировать пакеты следующей командой:

pip3 install -r requirements.txt

Pip-compile

Файл requirements.txt содержит сырой список зависимостей с жестко объявленными версиями. По этому списку часто сложно понять набор действительно необходимых пакетов для работы системы, а также управлять перекрестными зависимостями (теми, которые необходимы для работы пакетов первой необходимости).

Для подобных целей существует инструмент pip-compile. Он позволяет разделить требования к виртуальному окружению и список устанавливаемых зависимостей. Для этого требуется сформировать файл requirements.in, где записывается набор пакетов с необходимыми ограничениями по версиям (при необходимости). Пример requirements.in:

# requirements.in
django

Далее путем применения отдельной команды pip-compile данный файл "компилируется" и преобразуется в набор неконфликтующих зависимостей с зафиксированными версиями (файл requirements.txt).

Подробнее в документации

По умолчанию скрипты Powershell блокируются для запуска. Механизм этот называется Execution Policy. Однако, зачастую необходимо разрешить выполнение скриптов, чтобы, например, иметь возможность выполнять их по расписанию в планировщике заданий. Чтобы узнать, какая сейчас установлено политика, нужно воспользоваться командой

Get-ExecutionPolicy

Значения этой политики хранятся в реестре по следующему пути:

Компьютер\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell

строковый параметр «ExecutionPolicy» По умолчанию значение этого параметра выставлено в «Restricted» (ограниченный), что и запрещает выполнение скриптов. На самом деле, область применения политики различная — она может устанавливаться на разных уровнях системы, таким образом она будет распространяться на компьютер (будет действовать для всех пользователей), только на текущего пользователя и т.п. Посмотреть эту информацию можно, добавив параметр -list

Get-ExecutionPolicy -list

ИЗМЕНЕНИЕ ПОЛИТИКИ

Чтобы сменить политику, необходимо воспользоваться командой:

Set-ExecutionPolicy

Доступные значения: Unrestricted, RemoteSigned, AllSigned, Restricted, Default, Bypass, Undefined Наиболее интересны для нас первые четыре: • Restricted — выполнение сценариев запрещено. Эта опция установлена по умолчанию. Команды в таком случае можно выполнять только в интерактивном режиме. • All Signed — разрешено выполнение только сценариев, подписанных доверенным издателем. • RemoteSigned — разрешено выполнение любых сценариев, созданных локально, а сценарии, созданные на удаленных системах, выполняются только в том случае, если подписаны доверенным издателем. • Unrestricted — разрешено выполнение абсолютно любых сценариев. Наиболее безопасным будет параметр RemoteSigned, который будет выполнять только сценарии, созданные вами локально. Чтобы изменить политику, запустите Powershell от имени администратора и введите:

Set-ExecutionPolicy RemoteSigned

Видим запрос

Изменение политики выполнения
Политика выполнения защищает компьютер от ненадежных сценариев. Изменение политики выполнения может поставить под угрозу безопасность системы, как описано в разделе справки, вызываемом командой about_Execution_Policies и расположенном по адресу https:/go.microsoft.com/fwlink/?LinkID=135170 . Вы хотите изменить политику выполнения?
[Y] Да — Y [A] Да для всех — A [N] Нет — N [L] Нет для всех — L [S] Приостановить — S [?] Справка
(значением по умолчанию является «N»):

Выбираем пункт A .