Join us and get access to thousands of tutorials and a community of expert Pythonistas.

Unlock This Lesson

This lesson is for members only. Join us and get access to thousands of tutorials and a community of expert Pythonistas.

Unlock This Lesson

Hint: You can adjust the default video playback speed in your account settings.
Hint: You can set your subtitle preferences in your account settings.
Sorry! Looks like there’s an issue with video playback 🙁 This might be due to a temporary outage or because of a configuration issue with your browser. Please refer to our video player troubleshooting guide for assistance.

Building Your Python Package

When publishing a Python package it’s very likely that you publish a wheel instead of the actual source code. In this lesson you’ll learn how to make a wheel of your project.

Note: If you want to learn more about wheels, have a look at What Are Python Wheels and Why Should You Care? - it’s a good starting point!

00:00 When you send your project to PyPI, you don’t actually send source code. Your project is wrapped up in a distribution package, and the most common formats to do this in are source archives and Python wheels.

00:13 A source archive contains your source code and any supporting files in a tar file, while a wheel is a ZIP that contains your code. The wheel also includes any extensions ready for use. To create your source archive and a wheel, go ahead, open up your terminal, go to your top level project directory, and run this command: python setup.py and then add the arguments sdist and bdist_wheel.

00:48 Run that, you’ll see a bunch of stuff happen, and you should end up with some new folders in here. You’ve got a build/, a dist/, and a egg folder.

01:00 And if you go into dist/, or distribution, you should see two files in here.

01:06 You’ve got your wheel and your tar. Now if you look in setup.py, you won’t see anything in here about accepting command line arguments, and that’s because these are implemented already in the upstream distutils library. If you want to take a look at what some of the other options are, you can run --help-commands on setup.py and you’ll see plenty of different commands and arguments that you can add. Now it’s time to pat yourself on the back because you’ve built your entire package.

01:35 In the next video, you’re going to explore the files that you just created and perform a test upload to the PyPI test server to make sure that everything is good to go.

hettlage on April 10, 2020

When running

python setup.py sdist bdist_wheel

I got an error

error: invalid command 'bdist_wheel'

Installing the wheel package (pip install wheel) solved the problem.

lelethu1710 on July 22, 2020

When running

python setup.py sdist bdist_wheel

I got an error

error: invalid command ‘bdist_wheel’

Installing the wheel package (pip install wheel) solved the problem.

JBrooks on June 2, 2022

Same error and solution as others. PIP install wheel and run the command: python setup.py sdist bdist_wheel

Become a Member to join the conversation.