All Projects → carloshatch → wi

carloshatch / wi

Licence: MIT license
Installer for Python Wheels

Programming Languages

python
139335 projects - #7 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to wi

Dephell
📦 🔥 Python project management. Manage packages: convert between formats, lock, install, resolve, isolate, test, build graph, show outdated, audit. Manage venvs, build package, bump version.
Stars: ✭ 1,730 (+10076.47%)
Mutual labels:  pip, wheels
SolPipLog
Logger for the PIP Inverter series ( USB / RS232 version )
Stars: ✭ 72 (+323.53%)
Mutual labels:  pip
Biliutil
Bilibili.com视频批量下载工具包
Stars: ✭ 212 (+1147.06%)
Mutual labels:  pip
retro-contest-sonic
World Models applied to the Open AI Sonic Retro Contest
Stars: ✭ 74 (+335.29%)
Mutual labels:  sonic
Mercury
Mercury is a hacking tool used to collect information and use the information to further hurt the target
Stars: ✭ 236 (+1288.24%)
Mutual labels:  pip
HedgeLib
A C++ library and collection of tools that aims to make modding games in the Sonic the Hedgehog franchise easier.
Stars: ✭ 63 (+270.59%)
Mutual labels:  sonic
Fbrecog
An unofficial python wrapper for the Facebook face recognition endpoint
Stars: ✭ 184 (+982.35%)
Mutual labels:  pip
pip-audit
Audits Python environments and dependency trees for known vulnerabilities
Stars: ✭ 735 (+4223.53%)
Mutual labels:  pip
MacOS-All-In-One-Update-Script
Mac update shell script (Appstore, macOS, Homebrew and others)
Stars: ✭ 39 (+129.41%)
Mutual labels:  pip
PIP-Module-Scanner
Scans your Python project for all installed third party pip libraries that are used and generates a requirements.txt file based on it
Stars: ✭ 19 (+11.76%)
Mutual labels:  pip
PyGLM
Fast OpenGL Mathematics (GLM) for Python
Stars: ✭ 167 (+882.35%)
Mutual labels:  pip
Advanced Video
Stars: ✭ 240 (+1311.76%)
Mutual labels:  pip
TensorFlow-Raspberry-Pi
TensorFlow installation wheels for Raspberry Pi 32-bit OS
Stars: ✭ 18 (+5.88%)
Mutual labels:  pip
Rules python
Experimental Bazel Python Rules
Stars: ✭ 233 (+1270.59%)
Mutual labels:  pip
pip-custom-platform
pip+wheel wrapper which allows you to choose a custom platform name for building, downloading, and installing wheels.
Stars: ✭ 50 (+194.12%)
Mutual labels:  pip
Miscnn
A framework for Medical Image Segmentation with Convolutional Neural Networks and Deep Learning
Stars: ✭ 194 (+1041.18%)
Mutual labels:  pip
yavdb
Yet Another Vulnerability Database
Stars: ✭ 14 (-17.65%)
Mutual labels:  pip
XinFramework
Android 快速开发框架 总结以往开发结合三方项目 不断更新
Stars: ✭ 21 (+23.53%)
Mutual labels:  sonic
symmetric
A powerful tool to enable super fast module-to-API transformations. Learn in minutes, implement in seconds. Batteries included.
Stars: ✭ 65 (+282.35%)
Mutual labels:  pip
dellemc.enterprise sonic
Ansible Network Collection for Enterprise SONiC Distribution by Dell Technologies
Stars: ✭ 26 (+52.94%)
Mutual labels:  sonic

wi, the wheel installer

This is a package installer for Python wheel packages. For more information about wheels, please refer to https://pythonwheels.com/

Besides making the package installation process much faster, wheels allow you to get rid of a building env on your servers, tools such as compilers and dev libraries will not be required anymore if all of your dependencies has wheel packages available.

Speaking of packages available, this tool is an attempt to motivate authors of libs, frameworks and tools to release their packages in the wheel format.

Please note that this tool isn't a replacement for pip. If you have deps that don't have wheels package available, you will still have to use pip.

However, this tool makes it easy to fallback to pip when the wheel packages are not found.

No idle time

This tool is based on asyncio, in such a way that while packages are being downloaded, the tool will perform the installation of packages already downloaded.

Installation

$ pip install wi

Usage

If your packages are listed in a requirements.txt file, you can just run:

$ wi

If the packages are on a file other than requirements.txt, then you should specify the file path as the sole argument to the command. For example:

$ wi requirements-staging.txt

The command above will search for wheel packages for every entry in the file. In case no package is found, the command will output to stdout the package name and version, in the format package==version, meaning you can redirect the stdout to pip as a fallback for installing the missing packages:

$ wi | xargs pip install --no-deps

Demonstration

(wi) root@personal:~# pip uninstall -y -r requirements.txt &>/dev/null
(wi) root@personal:~# time pip install --no-cache-dir --no-deps \
   -r requirements.txt &>/dev/null

real	0m46.714s
user	0m40.575s
sys	0m3.077s
(wi) root@personal:~# pip uninstall -y -r requirements.txt &>/dev/null
(wi) root@personal:~# time wi &>/dev/null

real	0m2.315s
user	0m1.680s
sys	0m0.404s

Contributions

Contributions are welcome. Given this is just the start, the tool is missing lots of cool stuff. If you have time and are willing to contribute, just open a ticket and let's discuss it there!

It is also important to share this tool so we can advance with the current status os python wheels and pip itself.

Running tests

Minimal tests are present runing tox

$ pip install tox
$ tox
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].