Find file
Fetching contributors…
Cannot retrieve contributors at this time
103 lines (102 sloc) 7.56 KB
<!doctype html>
<html lang="en" ng-app="app">
<meta charset="utf-8">
<link href="" rel="stylesheet">
<link rel="icon" href="favicon.ico">
<link rel="icon" href="wheel.png">
a.btn, h1{text-align: center;}
a.btn:last-child, canvas, body{margin-bottom:15px;}
a.btn {border-bottom-width: 0; border-radius: 0; width: 100%}
a.btn:first-child{border-top-left-radius: 5px; border-top-right-radius: 5px;}
a.btn:last-child{border-bottom-width: 1px; border-bottom-left-radius: 5px; border-bottom-right-radius: 5px;}
pre {text-align: left;}
footer{text-align: center;}
<title>Python Wheels</title>
<body ng-controller="wheelCtrl">
<div class="container">
<div class="row">
<div class="col-sm-6">
<h1 id="wheels">Python Wheels</h1>
<object data="wheel.svg" type="image/svg+xml" width="380" height="380" class="center-block"></object>
<h2 id="what">What are wheels?</h2>
<p><a href="">Wheels</a> are <a href="">the new standard</a> of python distribution and are intended to replace eggs. Support is offered in <code>pip &gt;= 1.4</code> and <code>setuptools &gt;= 0.8</code>.</p>
<h3 id="advantages">Advantages of wheels</h3>
<li>Faster installation for pure python and native C extension packages.</li>
<li>Avoids arbitrary code execution for installation. (Avoids</li>
<li>Installation of a C extension does not require a compiler on Windows or macOS.</li>
<li>Allows better caching for testing and continuous integration.</li>
<li>Creates .pyc files as part of installation to ensure they match the python interpreter used.</li>
<li>More consistent installs across platforms and machines.</li>
<h2 id="about-list">What is this list?</h2>
<p>This site shows the top 360 most-downloaded packages on <a href="">PyPI</a> showing which have been uploaded as wheel archives.</p>
<li><span class="text-success">Green</span> packages offer wheels,</li>
<li><span class="text-muted">White</span> packages have no wheel archives uploaded (yet!).</li>
<p>Packages that are known to be deprecated are not included. (For example distribute). If your package is incorrectly listed, please <a href="">create a ticket</a>.</p>
<p>This is not the official website for wheels, just a nice visual way to measure adoption. To see the authoritative guide on wheels and other aspects of python packaging, see the <a href="">Python Packaging User Guide</a>.</p>
<h2 id="creating-wheels">My package is white. What can I do?</h2>
<h3 id="pure-wheel">Pure Python</h3>
<p>If you have a pure python package that is not using 2to3 for Python 3 support, you've got it easy. Make sure Wheel is installed&hellip;</p>
pip install wheel</pre>
<p>&hellip;and when you'd normally run <code>python sdist upload</code>, run instead <code>python sdist bdist_wheel upload</code>. For a more in-depth explanation, see this guide on <a href="">sharing your labor of love</a>.</p>
<p><em>Note: </em>If your project is python 2 and 3 compatible you can create a universal wheel distribution. Create a file called <code>setup.cfg</code> with the following content and upload your package.</p>
universal = 1</pre>
<p><strong>Warning: </strong>If your project has optional C extensions, it is recommended not to publish a universal wheel, because pip will prefer the wheel over a source installation.</p>
<h3 id="dirty-wheel">C extensions</h3>
<p>PyPI currently allows uploading platform-specific wheels for Windows, macOS and Linux. It is useful to create wheels for these platforms, as it avoids the need for your users to compile the package when installing.</p>
<p>You will need to have access to the platform you are building for.</p>
<h2 id="bugs">Something's wrong with this page!</h2>
<p>Fantastic, a problem found is a problem fixed. Please <a href="">create a ticket</a>!</p>
<p>You can also <a href="">submit a pull-request</a>.</p>
<p><em>Note: </em>Requests for behavioural changes in the packaging tools themselves should be directed to <a href="">distutils-sig</a> and the <a href="">Python Packaging Authority</a>.</p>
<h2 id="thanks">Thanks</h2>
<p>Thanks to the <a href="">Python 3 Wall of Superpowers</a> for the concept and making their code open source, <a href="">Donald Stufft</a> for his help on IRC, <a href="">James Turnbull</a> for the intro copy, and <a href="">George Hickman</a> for pointing me in the right direction as usual.</p>
<div class="col-sm-6">
<div class="list">
<span ng-hide="packages"> requires javascript to be enabled to display the list of packages.</span>
<a ng-repeat="package in packages" ng-href="{{ }}" class="btn btn-{{ package.css_class }}" ng-attr-title="{{package.title}}">
<span ng-bind=""></span>
<span ng-bind="package.icon"></span>
<p>Written by <a href="">meshy</a>, sponsored by <a href="">Incuna</a>, code on <a href="">GitHub</a>.</p>
<p>Last updated <span ng-bind="last_update"></span>. (Updated hourly.)</p>
<script src=""></script>
var app = angular.module('app', [])
.controller('wheelCtrl', function ($scope, $http){
$scope.last_update =;
$scope.packages =;
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-45641000-1']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);