Basic Packaging
Add a file named setup.py
to your project directory.
Users can then install the package using
python setup.py install
from the command line.
This file contains metadata about the project. The simplest setup.py
file possible is:
from setuptools import setup, find_packages
setup(
name='mymodule',
version='0.1',
py_modules = ['ultimate_answer']
)
Example
Create a simple .py file called ultimate_answer.py
that prints:
The answer to life the universe and everything is 42
print "The answer to life the universe and everything is 42"
- If we try to import this module from anywhere other than it’s directory, Python can’t find it.
- But if we add a
setup.py
file and use it to install the package, then it can be used from anywhere.
``` from setuptools import setup, find_packages
setup( name=’ultimate_answer’, version=’0.1’, py_modules = [‘ultimate_answer’] )
Now run
python setup.py install
Setuptools
This works great for simple modules, but real modules have dependencies,
and their modules have dependencies, and we’d have to install them all one at a
time. Instead, we can automate this using our setup.py
file.
Python keeps an online repository of packages and running easy_install
or
pip
will search the repository for the package you want and install it
automatically while handling any dependencies.
NEEDS EXAMPLE
Command line programs
We can make our Python programs run from anywhere on the command line with some relatively minor modifications to ultimate_answer.py:
def main():
print "The answer to life the universe and everyting is 42"
if __name__ == '__main__':
main()
And setup.py:
from setuptools import setup
setup(name='ultimate_answer',
version='0.1',
py_modules = ['ultimate_answer'],
entry_points={'console_scripts': ['ult_ans = ultimate_answer:main']})
Creating executable programs
We can also create versions of our programs that are self-contained executable programs.
Windows
- Install the py2exe module
- Run
python setup.py install
- Run
python setup.py py2exe
This will create a .exe file that can be run on any Windows computer, no Python or modules required.
Example
- Download pythonpy
- Download setup2.py
- Install
Package structure
package/
__init__.py
module1.py
subpackage/
__init__.py
module2.py
import package.module1
from package.subpackage import module2
from package.subpackage.module2 import name