что такое whl файл
Python на колёсах
Инфраструктура системы пакетов для Python долго подвергалась критике как от разработчиков, так и от системных администраторов. Долгое время даже само комьюнити не могло прийти к соглашению, какие именно инструменты использовать в каждом конкретном случае. Уже существуют distutils, setuptools, distribute, distutils2 в качестве базовых механизмов распространения и virtualenv, buildout, easy_install и pip в качестве высокоуровневых инструментов управления всем этим беспорядком.
Несколько лет назад PJE попытался исправить эту проблему, предоставив смесь из setuptools и pkg_resources для улучшения distutils и добавления метаданных в Python-пакеты. В дополнение к этому он написал утилиту easy_install для их установки. По причине отсутствия формата распространения, поддерживающего метаданные, был предоставлен формат ‘яиц’ [egg].
Python eggs – обычные zip-архивы, содержащие python-пакет и необходимые метаданные. Хотя многие люди, вероятно, никогда намеренно не собирали egg’и, их формат метаданных до сих пор жив-здоров. И все разворачивают свои проекты с использованием setuptools.
Потом прошло еще немного времени, и отказ от бинарных пакетов стал доставлять неудобства. Люди всё больше и больше стали деплоить на облачные сервера, а необходимость перекомпиляции C-шных библиотек на каждой машине не слишком радует. Так как ‘яйца’ на тот момент были малопонятны (я так полагаю), их переделали в новых PEP-ах, и назвали ‘колёсами’ [wheels].
В дальнейшем предполагается, что все действия происходят в virtualenv-окружении.
Что за колесо?
Начнём с простого. Что представляют собой ‘колёса’ и чем они отличаются от ‘яиц’? Оба формата являются zip-файлами. Главная разница в том, что egg можно импортировать без распаковки, wheel же придётся распаковать. Хотя нет никаких технических причин, делающих ‘колёса’ неимпортируемыми, поддержка их прямого импорта никогда даже не планировалась.
Другое различие в том, что ‘яйца’ содержат скомпилированные байткод, а ‘колёса’ – нет. Главное преимущество этого в том, что нет необходимости создавать отдельные wheel’ы для каждой версии Python до тех пор, пока не придётся распространять слинкованные через libpython модули. Хотя в новых версиях Python 3 при использовании стабильного ABI даже это уже можно провернуть.
Однако wheel-формат тоже не лишен проблем, некоторые из которых он наследует от ‘яиц’. Например, бинарные дистрибутивы под Linux до сих пор неприемлемы для большинства из-за двух недостатков: Python сам по себе компилируется под Linux в разных формах, и модули линкуются с разными системными библиотеками. Первая проблема вызвана сосуществованием несовместимых версий Python 2: USC2 и USC4. В зависимости от режима компиляции меняется ABI. В настоящее время wheel (насколько я могу судить) не содержит информации о том, с каким режимом Unicode связана библиотека. Отдельная проблема в том, что дистрибутивы Linux меньше совместимы между собой, чем хотелось бы, и обстоятельства могут сложиться так, что сборка, скомпилированная под один дистрибутив, не будет работать на остальных.
Всё это выливается в то, что, вообще говоря, на данный момент бинарные ‘колёса’ нельзя загружать на PyPI как несовместимые с различными системами.
В дополнение ко всему этому wheel сейчас знает только две крайности: бинарные пакеты и пакеты, содержащие чистый python-код. Бинарные пакеты специфичны для Python ветки 2.x. Сейчас это не кажется большой проблемой, потому что цикл 2.x подходит к концу, и пакетов, собранных только для 2.7, хватит надолго. Но если бы вдруг речь пошла про Python 2.8, была бы интересна возможность заявить, что этот пакет не зависит от версии Python, но он содержит бинарники, поэтому он не может не зависеть от архитектуры.
Единственный случай, оправдывающий существование такого пакета – это когда он содержит распределенные библиотеки, загружаемые с ctypes из CFFI. Такие библиотеки не связаны через libpython и не зависимы от реализации языка (их можно использовать даже с pypy).
Но есть и светлая сторона: ничто не запрещает использовать бинарные wheel’ы в своих собственных однородных инфраструктурах.
Сборка колеса
Решение этой проблемы – вручную реализовать Distribution из setuptools, скинув флаг чистоты в false :
Установка колеса
С использованием свежей версии pip ‘колесо’ ставится следующим образом:
Но что с зависимостями? Тут появляются некоторые сложности. Обычно одним из требований к пакету является возможность его установки даже без подключения к интернету. К счастью, pip позволяет отключать загрузку из индекса и устанавливать директорию, содержащую всё необходимое для установки. Если у нас есть wheel’ы для всех зависимостей необходимых версий, можно сделать следующее:
Таким образом будет установлена версия 1.0 пакета package в наше виртуальное окружение.
Колёса для зависимостей
Эта команда выгрузит все пакеты, от которых зависит наш пакет, в указанную папку. Но есть пара проблем.
Первая состоит в том, что в команде в настоящий момент есть баг, который не выгружает зависимости, которые уже являются ‘колёсами’. Так что если зависимость уже доступна на PyPI в wheel-формате, она не будет загружена.
Это временно решается shell-скриптом, который вручную перемещает из кэша скачанные wheel’ы.
Сборка пакетов c использованием DevPI
Такое временное решение проблемы зависимостей вполне применимо в простых ситуациях, но что делать, если есть множество внутренних python-пакетов, зависящих друг от друга? Такая конструкция быстро разваливается.
К счастью, в прошлом году Holker Krekel создал решение этой беды под названием DevPI, который по существу является хаком, эмулирующим работу pip с PyPI. После установки на компьютер DevPI работает как прозрачный прокси перед PyPI и позволяет pip-у устанавливать пакеты из локального репозитория. К тому же все пакеты, скачанные с PyPI, автоматически кэшируются, так что даже если отключить сеть, эти пакеты будут доступны для установки. И, в конце концов, появляется возможность загрузки своих собственных пакетов на локальный сервер, чтобы ссылаться на них так же, как и на хранящиеся в публичном индексе.
После запуска его необходимо единожды проинициализировать:
Так как я использую DevPI ‘для себя’, имена пользователя DevPI и системного пользователя совпадают. На последнем шаге создаётся индекс по имени проекта (при необходимости можно создать несколько).
Для перенаправления pip на локальный репозиторий можно сделать экспорт переменной окружения:
Я размешаю эту команду в скрипт postactivate моего virtualenv для предотвращения случайной загрузки из неверного индекса.
Для размещения собственных wheel’ов в локальном DevPI используется утилита devpi :
Заворачиваем
Теперь всё готово для начала использования внутренних зависимостей и сборки собственных ‘колёс’. Как только они появятся, их можно заархивировать, загрузить на другой сервер и установить в отдельный virtualenv.
Весь процесс станет чуть проще, когда pip wheel перестанет игнорировать существующие wheel-пакеты. А пока приведенный выше shell-скрипт – не худшее решение.
В сравнении с ‘яйцами’
Сейчас wheel-формат более притягателен, чем egg. Его разработка активнее, PyPI начал добавлять его поддержку и, так как с ним начинают работать утилиты, он похож на лучшее решение. ‘Яйца’ пока что поддерживаются только easy_install, хотя большинство давно перешло на pip.
Итак, теперь он у вас есть. Python на колёсах. И это вроде даже работает, и, возможно, стоит потраченного времени.
Как установить пакет Python с помощью a.WHL файл?
У меня возникли проблемы с установкой пакета Python (в частности, JPype1 0.5.7) на моей машине Windows, и я хотел бы установить его с двоичными файлами окна Кристофа Голке. (Что, по моему опыту, облегчило большую часть суеты для многих других установок пакетов.)
14 ответов
Я просто использовал следующее, что было довольно просто. Сначала откройте консоль, затем компакт-диск, где вы загрузили свой файл, как какой-то пакет.колесо и использовать
Примечание: если pip.exe не распознается, вы можете найти его в каталоге «Скрипты», откуда был установлен python. Если pip не установлен, эта страница может помочь: Как установить pip на Windows?
чтобы установить с колеса, дайте ему каталог, в который загружается колесо. Например, установить package_name.whl :
убедитесь, что вы обновили pip, чтобы включить поддержку колес:
Я нахожусь в той же лодке, что и ОП.
С помощью командной строки Windows, из каталога:
вы должны запустить pip.exe из командной строки на моем компьютере. Я печатаю C:/Python27/Scripts/pip2.exe install numpy
на сайте великого Кристофа Гольке есть несколько версий файлов.
чтобы вы знали, какую версию вы должны установить для своего компьютера. Выбор неправильной версии может привести к сбою установки пакета (особенно если вы не используете правильный тег CPython, например, cp27).
проверьте pip версия:
если он показывает 6.x серия, поддержка колеса.
только тогда вы можете установить пакет колес, как это:
чтобы иметь возможность устанавливать файлы колес с простым двойным щелчком на них, вы можете сделать следующее:
1) Выполните две команды в командной строке под правами администратора:
2) Кроме того, они могут быть скопированы в wheel.bat file и выполняется с флажком «Запуск от имени администратора»в свойствах.
PS pip.предполагается, что exe находится в пути.
обновление:
(1) Те можно совместить в одном строка:
также его выход можно сделать более подробным:
посмотреть мои блоге для сведения.
чтобы избежать необходимости загружать такие файлы, вы можете попробовать:
единственный способ, которым мне удалось установить NumPy, был следующим:
Модуль
выполнение команды из пути установки Python в PowerShell
PS. Я установил его на Windows 10.
конечно, вы также можете установить пакеты из PyPI таким образом, например,
в случае, если вы не можете установить конкретный пакет напрямую с помощью PIP.
на MacOS, с pip установлен через MacPorts в MacPorts python2.7, мне пришлось использовать решение @Dunes:
здесь python был заменен MacPorts python в моем случае, который является python2.7 или python3.5 для меня.
(я ранее работать sudo port install py27-pip py27-wheel установить pip и wheel сначала в мою установку python 2.7.)
Файл whl как открыть
Что это и как его открыть?
Если ваш файл WHL связан с аппаратным обеспечением на вашем компьютере, чтобы открыть файл вам может потребоваться обновить драйверы устройств, связанных с этим оборудованием.
Эта проблема обычно связана с типами мультимедийных файлов, которые зависят от успешного открытия аппаратного обеспечения внутри компьютера, например, звуковой карты или видеокарты. Например, если вы пытаетесь открыть аудиофайл, но не можете его открыть, вам может потребоваться обновить драйверы звуковой карты.
Как установить пакет Python с помощью a.WHL файл?
чтобы иметь возможность устанавливать файлы колес с простым двойным щелчком на них, вы можете сделать следующее:
1) Выполните две команды в командной строке под правами администратора:
2) Кроме того, они могут быть скопированы в wheel.bat file и выполняется с флажком «Запуск от имени администратора»в свойствах.
PS pip.предполагается, что exe находится в пути.
обновление:
(1) Те можно совместить в одном строка:
также его выход можно сделать более подробным:
посмотреть мои блоге для сведения.
разработчикпитон популярность 3,1 (14 голосов) категорияСжатые файлы ФорматZip X Этот файл сохраняется в сжатом формате. Вы можете просмотреть содержимое, разархивировав его с помощью программы распа
Тип файлаPython Wheel Package
разработчик | питон |
популярность | 3,1 (14 голосов) |
категория | Сжатые файлы |
Формат | Zip X |
застежка-молния
Этот файл сохраняется в сжатом формате. Вы можете просмотреть содержимое, разархивировав его с помощью программы распаковки файлов.
Что такое файл WHL?
Формат Wheel был представлен в PEP 427, который представляет собой предложение по улучшению Python, разработанное Дэниелом Холтом и принятое в 2012 году. Он был разработан как более быстрый и надежный метод установки программного обеспечения Python, чем повторная сборка из исходного кода каждый раз. Файлы WHL необходимо переместить только в правильное место на целевой системе для установки, тогда как исходный дистрибутив требует установки перед установкой.
Существует три типа файлов WHL:
О файлах WHL
Тип файла пакета Python Wheel Package, описание формата файла и программы для Mac, Windows и Linux, перечисленные на этой странице, были индивидуально исследованы и проверены командой FileInfo. Мы стремимся к 100% точности и публикуем информацию только о тех форматах файлов, которые мы тестировали и проверяли.
Если вы хотите предложить какие-либо дополнения или обновления на этой странице, пожалуйста, сообщите нам об этом.
Python на колёсах / Хабр
Несколько лет назад PJE попытался исправить эту проблему, предоставив смесь из setuptools и pkg_resources для улучшения distutils и добавления метаданных в Python-пакеты. В дополнение к этому он написал утилиту easy_install для их установки. По причине отсутствия формата распространения, поддерживающего метаданные, был предоставлен формат ‘яиц’ [egg].
Python eggs – обычные zip-архивы, содержащие python-пакет и необходимые метаданные. Хотя многие люди, вероятно, никогда намеренно не собирали egg’и, их формат метаданных до сих пор жив-здоров. И все разворачивают свои проекты с использованием setuptools.
Потом прошло еще немного времени, и отказ от бинарных пакетов стал доставлять неудобства. Люди всё больше и больше стали деплоить на облачные сервера, а необходимость перекомпиляции C-шных библиотек на каждой машине не слишком радует. Так как ‘яйца’ на тот момент были малопонятны (я так полагаю), их переделали в новых PEP-ах, и назвали ‘колёсами’ [wheels].
В дальнейшем предполагается, что все действия происходят в virtualenv-окружении.
Что за колесо?
Другое различие в том, что ‘яйца’ содержат скомпилированные байткод, а ‘колёса’ – нет. Главное преимущество этого в том, что нет необходимости создавать отдельные wheel’ы для каждой версии Python до тех пор, пока не придётся распространять слинкованные через libpython модули. Хотя в новых версиях Python 3 при использовании стабильного ABI даже это уже можно провернуть.
Однако wheel-формат тоже не лишен проблем, некоторые из которых он наследует от ‘яиц’. Например, бинарные дистрибутивы под Linux до сих пор неприемлемы для большинства из-за двух недостатков: Python сам по себе компилируется под Linux в разных формах, и модули линкуются с разными системными библиотеками. Первая проблема вызвана сосуществованием несовместимых версий Python 2: USC2 и USC4. В зависимости от режима компиляции меняется ABI. В настоящее время wheel (насколько я могу судить) не содержит информации о том, с каким режимом Unicode связана библиотека. Отдельная проблема в том, что дистрибутивы Linux меньше совместимы между собой, чем хотелось бы, и обстоятельства могут сложиться так, что сборка, скомпилированная под один дистрибутив, не будет работать на остальных.
Всё это выливается в то, что, вообще говоря, на данный момент бинарные ‘колёса’ нельзя загружать на PyPI как несовместимые с различными системами.
В дополнение ко всему этому wheel сейчас знает только две крайности: бинарные пакеты и пакеты, содержащие чистый python-код. Бинарные пакеты специфичны для Python ветки 2.x. Сейчас это не кажется большой проблемой, потому что цикл 2.x подходит к концу, и пакетов, собранных только для 2.7, хватит надолго. Но если бы вдруг речь пошла про Python 2.8, была бы интересна возможность заявить, что этот пакет не зависит от версии Python, но он содержит бинарники, поэтому он не может не зависеть от архитектуры.
Единственный случай, оправдывающий существование такого пакета – это когда он содержит распределенные библиотеки, загружаемые с ctypes из CFFI. Такие библиотеки не связаны через libpython и не зависимы от реализации языка (их можно использовать даже с pypy).
Но есть и светлая сторона: ничто не запрещает использовать бинарные wheel’ы в своих собственных однородных инфраструктурах.
Сборка колеса
Решение этой проблемы – вручную реализовать Distribution из setuptools, скинув флаг чистоты в false :
Установка колеса
Колёса для зависимостей
Это временно решается shell-скриптом, который вручную перемещает из кэша скачанные wheel’ы.
Сборка пакетов c использованием DevPI
К счастью, в прошлом году Holker Krekel создал решение этой беды под названием DevPI, который по существу является хаком, эмулирующим работу pip с PyPI. После установки на компьютер DevPI работает как прозрачный прокси перед PyPI и позволяет pip-у устанавливать пакеты из локального репозитория. К тому же все пакеты, скачанные с PyPI, автоматически кэшируются, так что даже если отключить сеть, эти пакеты будут доступны для установки. И, в конце концов, появляется возможность загрузки своих собственных пакетов на локальный сервер, чтобы ссылаться на них так же, как и на хранящиеся в публичном индексе.
Для перенаправления pip на локальный репозиторий можно сделать экспорт переменной окружения:
Я размешаю эту команду в скрипт postactivate моего virtualenv для предотвращения случайной загрузки из неверного индекса.
Для размещения собственных wheel’ов в локальном DevPI используется утилита devpi :
Заворачиваем
В сравнении с ‘яйцами’
Итак, теперь он у вас есть. Python на колёсах. И это вроде даже работает, и, возможно, стоит потраченного времени.
У меня проблемы с установкой пакета Python (в частности, JPype1 0.5.7) на мой компьютер с Windows, и я хотел бы установить его с помощью бинарных файлов Christoph Gohlke’s Window. (Что, по моему опыту, облегчило большую часть суеты для многих других установок пакетов.)
Примечания
e9t 11 Янв 2015 в 11:48
16 ответов
Я просто использовал следующее, что было довольно просто. Сначала откройте консоль, затем перейдите к тому месту, где вы скачали свой файл, например some-package.whl, и используйте
Примечание: если pip.exe не распознается, вы можете найти его в каталоге «Scripts», откуда был установлен python. Если pip не установлен, эта страница может помочь: Как установить pip в Windows?
Примечание: для уточнения
Если вы копируете файл *.whl на свой локальный диск (например, C: \ some-dir \ some-file.whl ), используйте следующие параметры командной строки:
Community 23 Май 2017 в 12:26
В случае, если вы не можете установить конкретный пакет напрямую, используя PIP.
Kiran Jasvanee 8 Фев 2018 в 10:55
Следуйте инструкциям, чтобы импортировать модуль
3. Теперь введите команду, написанную ниже
Нажмите Enter и убедитесь, что вы ввели версию, которую вы используете в настоящее время с правильной имя файла.
Как только вы нажмете ввод, подождите несколько минут, и файл будет установлен, и вы будете быть в состоянии импортировать конкретный модуль.
Чтобы проверить, успешно ли установлен модуль, импортируйте модуль в режиме ожидания и проверь это.
divesh jain 27 Дек 2018 в 12:18
(Ранее я запускал sudo port install py27-pip py27-wheel для установки pip и wheel сначала в мою установку на python 2.7.)
Demis 9 Мар 2018 в 01:25
Загрузите пакет (.whl).
Поместите файл в папку скриптов каталога python
Используйте командную строку для установки пакета.
Tono Kuriakose 16 Ноя 2019 в 09:32
Вы должны запустить pip.exe из командной строки на моем компьютере. Я печатаю C:/Python27/Scripts/pip2.exe install numpy
Tshilidzi Mudau 15 Фев 2017 в 11:15
Peter Mortensen 27 Май 2017 в 21:17
РЕДАКТИРОВАТЬ: ЭТО НЕ ДЛИННЕЕ ЧАСТЬ PIP
Чтобы избежать необходимости загружать такие файлы, вы можете попробовать:
Для получения дополнительной информации см. Это.
andyw 14 Апр 2019 в 18:23
На сайте великого Кристофа Гольке есть несколько версий файлов.
При установке колес с этого сайта я считаю важным сначала запустить его из консоли Python:
Так что вы знаете, какую версию вы должны установить для своего компьютера. Выбор неправильной версии может привести к сбою установки пакета (особенно если вы не используете правильный тег CPython, например, cp27).
Peter Mortensen 27 Май 2017 в 21:15
Во-первых, убедитесь, что вы обновили пип, чтобы включить поддержку колес:
Затем для установки с колеса укажите каталог, в который загружается колесо. Например, чтобы установить package_name.whl :
fuzzy 6 Дек 2019 в 06:54
Я в той же лодке, что и ОП.
С помощью командной строки Windows из каталога:
Peter Mortensen 27 Май 2017 в 21:14
Затем проверьте версию pip :
Если это показывает 6.x ряд, есть поддержка колеса.
Только тогда вы можете установить пакет с колесом так:
Rockallite 27 Апр 2015 в 03:17
Конечно, вы также можете установить пакеты из PyPI, например,
skrx 11 Мар 2017 в 21:49
Чтобы иметь возможность устанавливать файлы колес с помощью простого двойного щелчка на них, вы можете сделать следующее:
1) Запустите две команды в командной строке с правами администратора:
2) Кроме того, их можно скопировать в файл wheel.bat и выполнить с помощью флажка «Запуск от имени администратора» в свойствах.
PS pip.exe предполагается в PATH.
(1) Они могут быть объединены в одну строку:
Также его вывод можно сделать более подробным:
См. мой сообщение в блоге для деталей.
axil 27 Мар 2017 в 07:55
Единственный способ, которым мне удалось установить NumPy, был следующим:
Я скачал NumPy отсюда https://pypi.python.org/pypi/numpy
Этот модуль
Выполнение команды из пути установки Python в PowerShell
Vladimir 9 Ноя 2016 в 12:34
Надеюсь, у вас это получится.
Mawg says reinstate Monica 8 Ноя 2018 в 14:04
Чтобы иметь возможность устанавливать файлы колес с помощью простого двойного щелчка на них, вы можете сделать следующее:
1) Запустите две команды в командной строке с правами администратора:
2) Кроме того, их можно скопировать в wheel.bat файл и выполнить с помощью флажка «Запуск от имени администратора» в свойствах.
PS pip.exe предполагается в PATH.
Обновить:
(1) Они могут быть объединены в одну строку:
Также его вывод можно сделать более подробным:
см. мой блог для деталей.
Открыть файл WHL
Подробное описание
Добавить комментарий
Сделать закладку и поделиться этой страницей с другими:
Что такое файл WHL? Как открыть файлы WHL?
А. Файл whl хранит пакет wheel с данными, используемыми для создания приложения Python.
Обновлено: 4 августа 2020 г.
Программное обеспечение по умолчанию, связанное с открытием файла whl:
Компания или разработчик:
Python Software Foundation
Язык программирования, который позволяет вам работать быстрее и более эффективно интегрировать ваши системы. Python работает в Windows, Linux / Unix, Mac и был перенесен на Java и.NET виртуальных машин.
Справка, как открыть:
Как конвертировать:
Рекомендуемые программы отсортированы по платформе ОС (Windows, macOS, Linux, iOS, Android и т. Д.))
и возможных программных действий, которые могут быть выполнены с файлом : например, открыть файл whl, отредактировать файл whl, преобразовать файл whl, просмотреть файл whl, воспроизвести файл whl и т. Д. (Если существует программное обеспечение для соответствующего действия в File-Extensions. базу данных организации).
Подсказка:
Щелкните вкладку ниже, чтобы просто переключаться между действиями приложения, чтобы быстро получить список рекомендованного программного обеспечения, которое может выполнять указанное действие программного обеспечения, такое как открытие, редактирование или преобразование файлов whl.
Программы, поддерживающие расширение whl на основных платформах Windows, Mac, Linux или мобильных. Щелкните ссылку, чтобы получить дополнительную информацию о Python для действия по созданию файла WHL.
Щелкните ссылку на программное обеспечение для получения дополнительных сведений о Python. Python использует тип файла whl для своих внутренних целей и / или также иначе, чем обычные действия редактирования или открытия файла (например,для установки / выполнения / поддержки самого приложения, для хранения данных приложения или пользователя, настройки программы и т. д.).
Введите любое расширение файла без точки (например, pdf )
Найдите сведения о расширении файла и связанных приложениях