In Python, setup.py
is a build script that allows you to easily distribute and install your packages. It’s a crucial file that makes your package easily installable by other users. In this tutorial, we’ll cover the basics of creating and using setup.py
.
Introduction to setup.py
setup.py
is used in conjunction with tools like setuptools
or distutils
to define how your package should be installed. It’s a Python script that provides metadata about your package, such as its name, version, and dependencies.
When you run python setup.py install
, the script will take care of installing your package to the correct location on your system. This makes it easy for other users to install your package using tools like pip
.
Basic Structure of setup.py
A basic setup.py
file looks like this:
from setuptools import setup
setup(
name='your_package',
version='1.0',
description='A brief description of your package',
author='Your Name',
author_email='[email protected]',
packages=['your_package'], # same as the name
)
Let’s break down what each part does:
name
: The name of your package.version
: The version number of your package.description
: A brief description of your package.author
andauthor_email
: Your name and email address.packages
: A list of packages that should be included in the installation.
Adding Dependencies
If your package depends on other packages, you can specify them using the install_requires
parameter:
from setuptools import setup
setup(
# ...
install_requires=['dependency1', 'dependency2'],
)
This will ensure that the specified dependencies are installed when your package is installed.
Including Scripts
If your package includes scripts that should be executable, you can specify them using the scripts
parameter:
from setuptools import setup
setup(
# ...
scripts=['script1.py', 'script2.py'],
)
This will make the specified scripts executable when your package is installed.
Building and Distributing Your Package
To build and distribute your package, you’ll need to create a source distribution using the sdist
command:
python setup.py sdist
This will create a .tar.gz
file in the dist
directory that contains your package. You can then upload this file to PyPI (Python Package Index) using tools like twine
.
Uploading Your Package to PyPI
To upload your package to PyPI, you’ll need to install twine
:
pip install twine
Then, you can use the following command to upload your package:
twine upload dist/*
This will prompt you for your PyPI credentials and then upload your package.
Conclusion
In this tutorial, we’ve covered the basics of creating and using setup.py
for Python packages. By following these steps, you can make your package easily installable by other users and share it with the world.
Remember to always follow best practices when creating and distributing your packages, such as including clear documentation and testing your code thoroughly.