Как подготовить систему Windows для хорошего опыта PYZ.
Zipapps в двух словах
ZipApps – это способ распространения приложений Python и всех их зависимостей в одном двоичном файле. Это сопоставимо с статически связанными приложениями Голанга или «исполняемые банки Java». Их главное преимущество заключается в том, что распространение и установка их довольно просты.
Бег Код Python непосредственно из Zip Archives ничто новое, PEP 273 Сделал свой дебют в 2001 году, как часть Python 2.3 в виде Zipimport
модуль. PEP 441 Создает это и описывает механизмы для подключения полных приложений в один файл ZIP, который может быть выполнен исполняемым. Он был одобрен в 2015 году, и первая реализация появилась в Python 3.5 через zipapp.
модуль.
См. PEP для деталей о том, как создавать ZIP в исполняемые файлы, но в основном на POSIX Systems переводчик Python вызывается в «пути Bang», который сопровождается ZIP-архивом. Переводчик признает «сценарий» – это целый архив приложений и действует соответственно. На окнах, zipapps Должен нести .пью
Расширение, которое связано с PY
Диспетчерская команда, которая, в свою очередь, смотрит на путь взрыва и вызывает соответствующий интерпретатор Python от установленного набора.
Чтобы отобразить путь Bang ZipApp, используйте эту команду:
python3 -m zipapp --info foo.pyz
Если вы хотите изменить запрошенную версию Python к тому, что на самом деле устанавливается или что вы предпочитаете, измените путь Bang в составе процесса установки:
python3 -m zipapp -p '/usr/bin/env python3.8' -o ~/bin/foo foo.pyz
Это также может быть сделано на специальной основе, явно вызывая желаемый переводчик:
python3.8 foo.pyz … # POSIX py -3.8 foo.pyz … # Windows
Известные инструменты для создания новых zipApps, за пределами ядра Python, являются PEX (Twitter) и Шив (LinkedIn). Смотрите их документацию для получения подробной информации о пакете своих собственных приложений.
Настройка Windows 10 для zipApps
В окнах, потому что нет «+ X» флаг, вещи немного сложнее, чем на POSIX. Zipapps Должен иметь .pyz
расширение, для чего цена
Launcher зарегистрирован как приложение по умолчанию. Чистый эффект состоит в том, что такие файлы становятся исполняемыми и передаются на лаунчер Если Вы добавляете несколько настроек окружающей среды на вашу машину.
В пользовательских настройках среды добавьте новый Pathext
переменная (или продлеть существующий), со значением % Pathext%;. Pyz
Отказ Также отредактируйте Путь
один и добавить новый % Localappdata% \ bin
Вход. Сохраните все (нажмите «ОК»), откройте Новый Командное окно и проверьте изменения с
echo %PATHEXT% & echo %PATH%
Создайте новый каталог Bin, позвонив MD% localappdata% \ bin
Отказ Теперь вы можете разместить файл zipApp, как foo.pyz
в этом каталоге, и он немедленно Callable как фюра
.
Чтобы получить такой тестовый предмет, вы можете построить Шив С самим собой:
git clone https://github.com/linkedin/shiv.git cd shiv py -3 -m venv --prompt shiv venv venv\Scripts\activate.bat python -m pip install -e . shiv -e shiv.cli:main -o %LOCALAPPDATA%\bin\shiv.pyz . deactivate shiv --version
Вариации
Если это имеет вам больше смысла, вы можете изменить системные переменные вместо пользователей, и выбирают пути, которые являются глобальными для всех пользователей (например, C: \ usr \ bin
или аналогичные).
Чтобы сделать ZipApps доступными в сети, вы можете использовать % Appdata%
Чтобы сохранить zipApps, так что вам нужно только поддерживать их один раз, если вы регулярно работаете на нескольких машинах в той же сети. Просто убедитесь, что такая же версия Python используется повсюду.
Оригинал: “https://dev.to/jhermann/enabling-easy-zipapp-installs-on-windows-6og”