Как использовать python в windows
Содержание:
- Массивы
- Тестирование нового исполняемого файла ↑
- Настройка среды разработкиSet up your development environment
- Копаемся в артефактах PyInstaller ↑
- Всё же, что такое Python?¶
- Скачивание и установка
- Установка Python 3 на Android (Смартфоны и планшеты)
- Установка Git (необязательно)Install Git (optional)
- Как установить PIP на Raspberry Pi
- Более реалистичный пример CLI на Python с использованием click
- Создание простой игры с помощью PygameCreate a simple game with Pygame
- Запуск Python: интерактивный режим в IDLE
- Установка Python 3.6 на Ubuntu
- Отладка исполняемых файлов PyInstaller ↑
- Пакеты для работы с командной строкой, доступные в стандартной библиотеке Python 3.x
Массивы
В массивах «array» хранятся однотипные данные, структурированные определенным образом. Они похожи на списки, но ограничены размером и типом входных данных. Для создания нового массива нужно импортировать библиотеку, которая может с ним работать. Ячейки массива имеют одинаковый размер.
одномерные и многомерные массивы в Python
Массивы бывают одномерными, двумерными, многомерными. Размерность массива можно изменять, поэтому предусмотрена функции, позволяющие измерить его размер. В массиве можно добавлять и удалять элементы.
В качестве примера приведу синтаксис метода для списка: spisok . append (аргумент), где аргументом могут быть данные любого типа и аргумент является обязательным. Название метода записывается после названия списка через точку «. append». Этот метод принимает только один аргумент и вставляет его в конец списка. Синтаксис других методов аналогичен.
Тестирование нового исполняемого файла ↑
Лучший способ протестировать ваш новый исполняемый файл — на новой машине. Новая машина должна иметь ту же ОС, что и ваша машина сборки. В идеале эта машина должна быть максимально похожа на то, что используют ваши пользователи. Это не всегда возможно, поэтому лучше всего провести тестирование на своей машине.
Ключ заключается в том, чтобы запустить полученный исполняемый файл без активации вашей среды разработки. Это означает запуск без virtualenv, conda или любой другой среды, которая может получить доступ к вашей установке Python. Помните, что одна из основных целей исполняемого файла, созданного PyInstaller, состоит в том, чтобы пользователям не нужно было ничего устанавливать на их машинах.
Взяв пример с программы чтения каналов, вы заметите, что запустить исполняемый файл cli по умолчанию в папке dist/cli не удается. К счастью, ошибка указывает на проблему:
FileNotFoundError: 'version.txt' resource not found in 'importlib_resources' Failed to execute script cli
Для пакета importlib_resources требуется файл version.txt. Вы можете добавить этот файл в сборку с помощью параметра —add-data. Вот пример того, как добавить необходимый файл version.txt:
$ pyinstaller cli.py \ --add-data venv/reader/lib/python3.6/site-packages/importlib_resources/version.txt:importlib_resources
Эта команда указывает PyInstaller включить файл version.txt в папку importlib_resources в новую папку в вашей сборке с именем importlib_resources.
Вам нужно изменить путь в приведенной выше команде, чтобы он соответствовал тому месту, где вы установили зависимости программы чтения каналов.
Теперь запуск нового исполняемого файла приведет к новой ошибке, связанной с файлом config.cfg.
Этот файл требуется для проекта чтения каналов, поэтому обязательно включите его в свою сборку:
$ pyinstaller cli.py \ --add-data venv/reader/lib/python3.6/site-packages/importlib_resources/version.txt:importlib_resources \ --add-data reader/config.cfg:reader
Опять же, вам нужно будет скорректировать путь к файлу в зависимости от того, где у вас находится проект программы чтения каналов.
На этом этапе у вас должен быть рабочий исполняемый файл, который можно передавать напрямую пользователям!
Настройка среды разработкиSet up your development environment
При использовании Python для написания скриптов, выполняющих операции файловой системы, рекомендуется установить Python из Microsoft Store.When using Python to write scripts that perform file system operations, we recommend you install Python from the Microsoft Store. При установке из Microsoft Store используется базовый интерпретатор Python3, но в дополнение к автоматическому обновлению также настраиваются параметры пути для текущего пользователя (без необходимости доступа администратора).Installing via the Microsoft Store uses the basic Python3 interpreter, but handles set up of your PATH settings for the current user (avoiding the need for admin access), in addition to providing automatic updates.
Если вы используете Python для веб-разработки в Windows, рекомендуем использовать другую установку с помощью подсистемы Windows для Linux.If you are using Python for web development on Windows, we recommend a different setup using the Windows Subsystem for Linux. Ознакомьтесь с пошаговыми инструкциями в нашем руководстве: Начало работы с Python для разработки веб-приложений в Windows.Find a walkthrough in our guide: Get started using Python for web development on Windows. Если вы новичок в Python, ознакомьтесь с нашим руководством: Get started using Python on Windows for beginners (Приступая к работе с Python в Windows для начинающих).If you’re brand new to Python, try our guide: Get started using Python on Windows for beginners. В некоторых сложных сценариях (например, при необходимости модификации или доступа к установленным файлам Python, создания копий двоичных файлов или непосредственного использования библиотек DLL Python) может потребоваться загрузить определенный выпуск Python непосредственно с сайта python.org или установить альтернативное средство, например Anaconda, Jython, PyPy, WinPython, IronPython и т. д. Мы рекомендуем это только в том случае, если вы более продвинутый программист на Python и у вас есть конкретная причина выбрать альтернативную реализацию.For some advanced scenarios (like needing to access/modify Python’s installed files, make copies of binaries, or use Python DLLs directly), you may want to consider downloading a specific Python release directly from python.org or consider installing an alternative, such as Anaconda, Jython, PyPy, WinPython, IronPython, etc. We only recommend this if you are a more advanced Python programmer with a specific reason for choosing an alternative implementation.
Копаемся в артефактах PyInstaller ↑
PyInstaller сложен внутри и при работе создаёт массу информации
Итак, важно знать, на чем сосредоточиться в первую очередь. А именно исполняемый файл, который вы можете распространять среди пользователей, и потенциальную отладочную информацию
По умолчанию команда pyinstaller создает несколько интересных моментов:
- Файл спецификации *.spec
- Папка сборки Build
- Папка дистрибутива Dist
Файл спецификаций
По умолчанию файл спецификации будет назван в честь вашего сценария командной строки. Продолжая наш предыдущий пример, вы увидите файл с именем cli.spec. Вот как выглядит файл спецификации по умолчанию после запуска PyInstaller в файле cli.py:
# -*- mode: python -*- block_cipher = None a = Analysis(, pathex=['/Users/realpython/pyinstaller/reader'], binaries=[], datas=[], hiddenimports=[], hookspath=[], runtime_hooks=[], excludes=[], win_no_prefer_redirects=False, win_private_assemblies=False, cipher=block_cipher, noarchive=False) pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher) exe = EXE(pyz, a.scripts, [], exclude_binaries=True, name='cli', debug=False, bootloader_ignore_signals=False, strip=False, upx=True, console=True ) coll = COLLECT(exe, a.binaries, a.zipfiles, a.datas, strip=False, upx=True, name='cli')
Этот файл будет автоматически создан командой pyinstaller. У вашей версии будут разные пути, но большинство должно быть одинаковым.
Не волнуйтесь, вам не нужно понимать приведенный выше код, чтобы эффективно использовать PyInstaller!
Этот файл можно изменить и повторно использовать для создания исполняемых файлов позже. Вы можете сделать будущие сборки немного быстрее, предоставив этот файл спецификации вместо сценария точки входа для команды pyinstaller.
Есть несколько конкретных вариантов . Однако для простых проектов вам не нужно беспокоиться об этих деталях, если вы не хотите сильно настраивать способ сборки вашего проекта.
Папка сборки Build
Папка build — это то место, куда PyInstaller помещает большую часть метаданных и внутренней бухгалтерии для создания вашего исполняемого файла. Содержимое по умолчанию будет выглядеть примерно так:
| └── cli/ ├── Analysis-00.toc ├── base_library.zip ├── COLLECT-00.toc ├── EXE-00.toc ├── PKG-00.pkg ├── PKG-00.toc ├── PYZ-00.pyz ├── PYZ-00.toc ├── warn-cli.txt └── xref-cli.html
Папка сборки может быть полезна для отладки, но, если у вас нет проблем, эту папку можно в значительной степени игнорировать. Вы узнаете больше об отладке позже в этом уроке.
Папка Dist
После сборки вы получите папку dist, подобную следующей:
dist/ | └── cli/ └── cli
Папка dist содержит последний вариант приложения, который вы хотите отправить своим пользователям. Внутри папки dist есть папка, названная в честь вашей точки входа. Итак, в этом примере у вас будет папка dist/cli, содержащая все зависимости и исполняемый файл для нашего приложения. Исполняемый файл для запуска — dist/cli/cli или dist/cli/cli.exe, если вы работаете в Windows.
Вы также найдете множество файлов с расширениями .so, .pyd и .dll в зависимости от вашей операционной системы. Это общие библиотеки, которые представляют зависимости вашего проекта, которые PyInstaller создал и собрал.
Вы захотите распространить всю папку dist/cli, но вы можете переименовать cli во все, что вам подходит.
На этом этапе вы можете попробовать запустить исполняемый файл dist/cli/cli.exe, если вы следуете примеру программы чтения каналов.
Вы заметите, что запуск исполняемого файла приводит к ошибкам, в которых упоминается файл version.txt. Это связано с тем, что программе чтения каналов и ее зависимостям требуются некоторые дополнительные файлы данных, о которых PyInstaller не знает. Чтобы исправить это, вам нужно сообщить PyInstaller, что требуется version.txt, о чем вы узнаете при тестировании нового исполняемого файла.
Всё же, что такое Python?¶
Python — это вещь, называемая языком программирования. Она принимает текст (обычно называемый кодом), который ты написал, переводит его в инструкции для компьютера, которые затем исполняет. Мы будем учиться писать код, чтобы делать клёвые и полезные вещи. Отныне вы не обязаны использовать чужие программы, чтобы выполнять работу на компьютере!
В действительности, Python – всего лишь ещё одна программа на твоём компьютере. Для начала нужно узнать, как использовать и взаимодействовать с ним. Существует много способов научиться этому, первый из которых – работать и интерпретатором Python, используя консоль операционной системы (ОС).
Консоль (“терминал”, “командная строка”) – это текстовый (в отличие от так называемых “окружений рабочего стола” (Desktop Environment, DE), работающих в связке с мышью) интерфейс для работы с ОС.
Открываем консоль в Mac OS X
Стандартная консоль OS X зовётся Терминалом, который можно найти с помощью поиска (правый верхний угол) по системе или в разделе Приложения -> Утилиты .
Командная строка Terminal — это инструмент для “общения” с компьютером. Открывшееся окно должно содержать сообщение-подсказку, что-то вроде этого:
mycomputer:~ myusername$
Открываем консоль в GNU/Linux
В дистрибутивах GNU/Linux (Ubuntu, Fedora, Mint и т.д.) обычно уже установлены разные программы-консоли, обычно называемые терминалами. То, какой терминал установлен, зависит от используемого дистрибутива. Например, в Ubuntu это Gnome Terminal. После запуска появляется приглашение вроде этого:
myusername@mycomputer:~$
Скачивание и установка
Для начала нам нужно скачать установщик с официального сайта — python.org. Если качать Python с других сайтов, можно подцепить вирус или троян. Скачивайте программы только с официальных сайтов.
Несмотря на то, что Python 3 вышел 10 лет назад, до сих пор многие спорят про то, какую версию лучше использовать — вторую или третью. Мы за прогресс, поэтому качаем Python 3, но вы можете выбрать любую другую.
На главной странице сразу видим большую жёлтую кнопку, на которой написано «Download Python». Нажимаем, сохраняем и запускаем файл. Он весит около 25 мегабайт.
Большая жёлтая кнопка, которая отвечает за последнюю версию Python.
Установщик спрашивает, как установить — всё сразу или хотите что-то настроить? Выбираем первый вариант — Install Now.
В конце установки программа предложит убрать ограничение на длину одной служебной переменной. Она отвечает за то, чтобы вы или другая программа могли запустить Python почти из любого места. Для этого нужно нажать текст в рамке.
Когда установка закончится, нужно проверить, что всё было сделано правильно. Для этого в командной строке наберите py (латиницей) или python и нажмите клавишу ввода. Если всё хорошо, в ответ Python вам напишет номер своей версии и сборки и предложит несколько команд для знакомства с собой:
Вы с Python 3, поздравляем.
Установка Python 3 на Android (Смартфоны и планшеты)
Если у вас есть смартфон или планшет на Android, и вы хотите отточить свои навыки работы с Python на ходу, есть несколько доступных вариантов. Один из них является приложением Pydroid 3, оно работает наиболее надежно и поддерживает Python 3.6.
Pydroid 3 поддерживает интерпретатор, который вы можете использовать для сессий REPL, кроме этого, он также предоставляет возможность редактирования, сохранения и выполнения кода Python:
Вы можете скачать и установить Pydroid 3 в магазине Google Play. Здесь доступна бесплатная версия, но есть и премиум версия, которая поддерживает прогнозирование и анализ кода.
Установка Git (необязательно)Install Git (optional)
Если вы планируете совместно работать над кодом Python с другими пользователями или размещать проект на сайте с открытым исходным кодом (например, GitHub), примите во внимание, что VS Code поддерживает .If you plan to collaborate with others on your Python code, or host your project on an open-source site (like GitHub), VS Code supports. Вкладка системы управления версиями в VS Code отслеживает все изменения и содержит общие команды Git (добавление, фиксация, принудительная отправка, извлечение) прямо в пользовательском интерфейсе.The Source Control tab in VS Code tracks all of your changes and has common Git commands (add, commit, push, pull) built right into the UI
Сначала необходимо установить Git для включения панели управления версиями.You first need to install Git to power the Source Control panel.
-
Скачайте и установите Git для Windows с веб-сайта git-scm.Download and install Git for Windows from the git-scm website.
-
В комплект входит мастер установки, который задает вам ряд вопросов о параметрах установки Git.An Install Wizard is included that will ask you a series of questions about settings for your Git installation. Рекомендуется использовать все параметры по умолчанию, если у вас нет конкретной причины изменить какой-либо из них.We recommend using all of the default settings, unless you have a specific reason for changing something.
-
Если вы никогда не использовали Git, обратитесь к руководствам по GitHub. Они помогут вам приступить к работе.If you’ve never worked with Git before, GitHub Guides can help you get started.
Как установить PIP на Raspberry Pi
Если вы являетесь пользователем Raspberry, эта часть статьи для вас. Если же вы даже не в курсе, что такое Raspberry, можете смело пропустить данный абзац.
Уже начиная с Rapsbian Jessie, система устанавливается по дефолту, то есть вопросов о том, что PIP не установлена, не возникает. Это ещё и причина обновить ОС до Rapsbian Jessie а не использовать Rapsbian Wheezy/Jessie Lite. Однако никто не мешает установить систему и на старую версию.
Для Python 2 это выглядит следующим образом:
sudo apt-get install python-pip
Для третьей версии изменения в команде крайне незначительны:
sudo apt-get install python3-pip
В процессе работы нужно будет применять pip и pip3 соответственно.
Более реалистичный пример CLI на Python с использованием click
Теперь, когда вы знаете, как click упрощает написание CLI, давайте взглянем на более реалистичный пример. Мы напишем программу, которая позволяет нам взаимодействовать с веб-API.
API, который мы дальше будем использовать, — OpenWeatherMap API. Он предоставляет информацию о текущей погоде, а также прогноз на пять дней для определённого местоположения. Мы начнём с тестового API, который возвращает текущую погоду для места.
Прежде чем мы начнём писать код, давайте познакомимся с API. Для этого можно использовать сервис HTTPie, включая онлайн-терминал.
Давайте посмотрим, что случится, когда мы обратимся к API с Лондоном в качестве местоположения:
Если вы смущены наличием API-ключа в примере сверху, не переживайте, это тестовый API-ключ, предоставляемый сервисом.
Более важное наблюдение заключается в том, что мы отправляем два параметра (обозначаемые при использовании HTTPie), чтобы узнать текущую погоду:
- — место, в котором мы хотим узнать погоду;
- — наш API-ключ.
Это позволяет нам создать простую реализацию на Python с использованием библиотеки requests (опустим обработку ошибок и неудачных запросов для простоты):
Эта функция делает простой запрос к API, используя два параметра. В качестве обязательного аргумента она принимает (местоположение), которое должно быть строкой. Также мы можем указать API-ключ, передавая параметр при вызове функции. Это необязательно, так как по умолчанию используется тестовый ключ.
И вот мы видим текущую погоду в Python REPL:
Создание простой игры с помощью PygameCreate a simple game with Pygame
Pygame — это популярный пакет Python для создания игр, который позволяет учащимся изучать программирование увлекательным способом.Pygame is a popular Python package for writing games — encouraging students to learn programming while creating something fun. Pygame отображает графические изображения в новом окне, поэтому метод «только командной строки» WSL не подойдет.Pygame displays graphics in a new window, and so it will not work under the command-line-only approach of WSL. Но если вы установили Python с помощью Microsoft Store, как описано в этом учебнике, все получится.However, if you installed Python via the Microsoft Store as detailed in this tutorial, it will work fine.
-
После установки Python установите Pygame из командной строки (или терминала в VS Code), введя .Once you have Python installed, install pygame from the command line (or the terminal from within VS Code) by typing .
-
Протестируйте установку, запустив пример игры: Test the installation by running a sample game :
-
Если все в порядке, откроется окно игры.All being well, the game will open a window. По завершении игры закройте окно.Close the window when you are done playing.
Вот как начать написание кода собственной игры:Here’s how to start writing your own game.
-
Откройте PowerShell (или командную строку Windows) и создайте пустую папку с именем bounce.Open PowerShell (or Windows Command Prompt) and create an empty folder called «bounce». Перейдите к этой папке и создайте файл с именем bounce.py.Navigate to this folder and create a file named «bounce.py». Откройте папку в VS Code:Open the folder in VS Code:
-
С помощью VS Code введите следующий код Python (или скопируйте и вставьте его):Using VS Code, enter the following Python code (or copy and paste it):
-
Сохраните его как: .Save it as: .
-
Запустите его в терминале PowerShell, введя: .From the PowerShell terminal, run it by entering: .
Попробуйте изменить некоторые из чисел, чтобы увидеть, как они влияют на прыгающий шарик.Try adjusting some of the numbers to see what effect they have on your bouncing ball.
Дополнительные сведения о создании игр с помощью Pygame см. на сайте pygame.org.Read more about writing games with pygame at pygame.org.
Запуск Python: интерактивный режим в IDLE
При установке языка программирования Python в комплекте с ним идёт IDLE. Это интегрированная среда разработки, подобная по своей сути интерпретатору, который запущен интерактивно. Отличие — расширенный набор возможностей. Среди таких возможностей:
— отладка;
— просмотр объектов;
— подсветка синтаксиса и прочие.
Чтобы запустить IDLE в Windows, следует перейти в меню «Пуск», где можно без проблем найти нужный инструмент:
После запуска пользователь увидит следующую среду:
В ней можно тоже полноценно работать с кодом.
Если же разговор идёт про Linux, то в этой операционной системе IDLE-оболочка по дефолту отсутствует, поэтому придётся её инсталлировать. Для Python 3.4 это будет выглядеть так:
Итогом станет загрузка IDLE на персональный компьютер пользователя. Запустить оболочку тоже несложно:
Выглядеть среда будет следующим образом:
Установка Python 3.6 на Ubuntu
В зависимости от версии Ubuntu, с которым вы работаете, варьируются и инструкции по установке Python. Вы можете определить вашу локальную версию Ubuntu, выполнив следующую команду:
Shell
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04.4 LTS
Release: 16.04
Codename: xenial
1 2 3 4 5 6 |
$lsb_release-a No LSB modules are available. Distributor IDUbuntu DescriptionUbuntu16.04.4LTS Release16.04 Codenamexenial |
Следуйте следующим инструкциям в зависимости от номера версии, который виден под надписью Release в выдаче консоли:
Ubuntu 17.10, Ubuntu 18.04 предоставляет Python 3.6 по умолчанию. Вы можете вызвать его по команде python3.
Ubuntu 16.10 и Ubuntu 17.04 не предоставляют Python 3.6 по умолчанию, однако он доступен в репозитории Universe. Вы можете установить его, выполнив следующие команды:
Shell
$ sudo apt-get update
$ sudo apt-get install python3.6
1 2 |
$sudo apt-getupdate $sudo apt-getinstall python3.6 |
Вы можете вызвать его по команде python3.6.
Если вы используете Ubuntu 14.04 или Ubuntu 16.04, Python 3.6 не будет находиться в репозитории Universe, так что вам нужно получить его из архива Personal Package Archive (PPA). Например, для установки Python из PPA, выполните следующую команду:
Shell
$ sudo add-apt-repository ppa:deadsnakes/ppa
$ sudo apt-get update
$ sudo apt-get install python3.6
1 2 3 |
$sudo add-apt-repository ppadeadsnakesppa $sudo apt-getupdate $sudo apt-getinstall python3.6 |
Как и ранее, его можно вызвать при помощи команды python3.6.
Отладка исполняемых файлов PyInstaller ↑
Как вы видели выше, вы можете столкнуться с проблемами при запуске исполняемого файла. В зависимости от сложности вашего проекта исправления могут быть такими простыми, как включение файлов данных, таких как пример программы чтения каналов. Однако иногда требуется больше методов отладки.
Ниже приведены несколько распространенных стратегий, которые не указаны в определенном порядке.Часто одна из этих стратегий или их комбинация приводит к прорыву в сложных сеансах отладки.
Используйте терминал
Сначала попробуйте запустить исполняемый файл из терминала, чтобы увидеть весь вывод.
Не забудьте удалить флаг -w build, чтобы увидеть весь стандартный вывод в окне консоли. Часто вы увидите исключения ImportError, если зависимость отсутствует.
Файлы отладки
Проверьте файл build/cli/warn-cli.txt на наличие проблем. PyInstaller создает множество выходных данных, чтобы помочь вам понять, что именно он создает. Копание в папке build/ — отличное место для начала.
Используйте режим распространения —onedir для создания папки распространения вместо одного исполняемого файла. Опять же, это режим по умолчанию. Сборка с помощью —onedir дает вам возможность проверить все включенные зависимости вместо того, чтобы все было скрыто в одном исполняемом файле.
—onedir полезен для отладки, но —onefile обычно легче понять пользователям. После отладки вы можете переключиться в режим —onefile, чтобы упростить распространение.
Дополнительные параметры интерфейса командной строки
PyInstaller также имеет параметры для управления объемом информации, печатаемой в процессе сборки. Перестройте исполняемый файл с параметром —log-level=DEBUG в PyInstaller и просмотрите вывод.
PyInstaller создаст много вывода при увеличении детализации с помощью —log-level=DEBUG. Полезно сохранить этот вывод в файл, к которому вы можете обратиться позже, вместо того, чтобы прокручивать его в Терминале. Для этого вы можете использовать функцию перенаправления вашей оболочки. Вот пример:
$ pyinstaller --log-level=DEBUG cli.py 2> build.txt
Используя указанную выше команду, вы получите файл build.txt, содержащий множество дополнительных сообщений DEBUG.
Вот пример того, как может выглядеть ваш файл build.txt:
67 INFO: PyInstaller: 3.4 67 INFO: Python: 3.6.6 73 INFO: Platform: Darwin-18.2.0-x86_64-i386-64bit 74 INFO: wrote /Users/realpython/pyinstaller/reader/cli.spec 74 DEBUG: Testing for UPX ... 77 INFO: UPX is not available. 78 DEBUG: script: /Users/realptyhon/pyinstaller/reader/cli.py 78 INFO: Extending PYTHONPATH with paths ['/Users/realpython/pyinstaller/reader', '/Users/realpython/pyinstaller/reader']
В этом файле будет много подробной информации о том, что было включено в вашу сборку, почему что-то не было включено и как был упакован исполняемый файл.
Вы также можете перестроить свой исполняемый файл с помощью параметра —debug в дополнение к параметру —log-level для получения дополнительной информации.
Дополнительные документы PyInstaller
PyInstaller GitHub Wiki содержит множество полезных ссылок и советов по отладке. В первую очередь это разделы о том, , и что делать, если что-то пойдет не так.
Помощь в обнаружении зависимостей
Наиболее частая проблема, с которой вы столкнетесь, — это исключения ImportError, если PyInstaller не может правильно определить все ваши зависимости. Как упоминалось ранее, это может произойти, если вы используете , импорт внутри функций или другие типы .
Многие из этих типов проблем можно решить с помощью —hidden-import параметр CLI PyInstaller. Это указывает PyInstaller включить модуль или пакет, даже если он не обнаруживает их автоматически. Это самый простой способ обойти множество магических действий динамического импорта в вашем приложении.
Другой способ обойти проблемы — файлы перехвата. Эти файлы содержат дополнительную информацию, которая поможет PyInstaller упаковать зависимость. Вы можете написать свои собственные хуки и указать PyInstaller использовать их с параметром CLI —additional-hooks-dir.
Файлы ловушек — это то, как сам PyInstaller работает внутри, поэтому вы можете найти множество примеров файлов ловушек в исходном коде PyInstaller.
Пакеты для работы с командной строкой, доступные в стандартной библиотеке Python 3.x
Добавление команд и параметров в ваши скрипты может сделать их значительно лучше, но парсить командную строку не так просто, как может показаться. Однако вместо того, чтобы пытаться самостоятельно решить эту проблему, лучше воспользоваться одним из многих пакетов, которые сделали это за вас.
Два наиболее известных пакета для этого — optparse и argparse. Они являются частью стандартной библиотеки Python и добавлены туда по принципу «всё включено».
По большей части они делают одно и то же и работают схожим образом. Главное отличие заключается в том, что optparse не используется начиная с Python 3.2, и argparse считается стандартом для создания CLI в Python.
Вы можете узнать о них больше в документации Python, но, чтобы иметь представление, как выглядит скрипт с argparse, посмотрите на пример ниже: