You now know how to prepare your project and upload it to PyPI, so that it can be installed and used by other people. While there are a few steps that you need to go through, seeing your own package on PyPI is a great payoff. Having others find your project useful is even better!
In this video course, you’ve learned:
- Why packages and virtual environments exist
- How to structure a package
- How to use build systems
- The contents of the
pyproject.toml
file - How to use the
build
andtwine
tools
You also looked at the alternative Flit and Poetry tools.
Links In This Course:
- Real Python Reader files at PyPI
.pypirc
File Specification- MIT License
- Choose A License
- Poetry Installer
- PEP 427: The Wheel Binary Package Format 1.0
- PEP 440: Version Identification and Dependency Specification
- PEP 508: Dependency specification for Python Software Packages
- PEP 517: A build-system independent format for source trees
- PEP 518: Specifying Minimum Build System Requirements for Python Projects
- PEP 621: Storing project metadata in pyproject.toml
- PEP 660: Editable installs for pyproject.toml based builds (wheel based)
- Cheese Shop Sketch
Further Investigation:
- Publishing Python Packages by Dane Hillard
- Python Packaging Authority
- Packaging Documentation
- Packaging Presentations
- How to improve Python packaging, or why fourteen tools are at least twelve too many
- Testing & Packaging (includes why to use src directory)
Similar Real Python Content:
- Python Application Layouts: A Reference
- Documenting Python Projects With Sphinx and Read the Docs
- Getting Started With Testing in Python
- Effective Python Testing With pytest
- What Are Python Wheels and Why Should You Care?
Get Source Code: Click here to get access to the source code for the Real Python Feed Reader that you’ll use to publish an open-source package to PyPI.
Congratulations, you made it to the end of the course! What’s your #1 takeaway or favorite thing you learned? How are you going to put your newfound skills to use? Leave a comment in the discussion section and let us know.
Ramon Zuniga on July 12, 2023
Is it a good practice/idea to build packages for reusable data models throughout different projects?