Project Structure

Organize your project:

myproject/
    myproject/
        __init__.py
        module1.py
    setup.py
    README.md
    requirements.txt

setup.py

Create setup file:

from setuptools import setup, find_packages

setup(
    name="myproject",
    version="0.1.0",
    packages=find_packages(),
    install_requires=["requests>=2.25.0"],
)

Installing in Development

Install in editable mode:

pip install -e .

Building Distribution

Build packages:

pip install build
python -m build

Publishing to PyPI

Upload to PyPI:

pip install twine
twine upload dist/*

pyproject.toml (Modern)

Use modern packaging:

[build-system]
requires = ["setuptools>=61.0"]
build-backend = "setuptools.build_meta"

[project]
name = "myproject"
version = "0.1.0"
dependencies = ["requests>=2.25.0"]

Best Practices

  • Use pyproject.toml: Modern standard
  • Version properly: Follow semantic versioning
  • Include README: Document your package
  • Test before publishing: Ensure package works

Next Steps

Learn about testing to ensure package quality.