Skip to content

Latest commit

History

18 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

A template to structure your Python application

A python project to use as a template when developing a Python application.

In order to create a Python project with a similar structure you need to do the following:

The structure of the project should be as follows:

project
├── README.md
├── example
│ ├── __init__.py
│ ├── package_1
│ │ ├── __init__.py
│ │ ├── awesome_module.py
│ │ ├── ...
│ │ └── awesome_module_n.py
│ └── package_2
│ ├── __init__.py
│ └── module.py
├── setup.py
└── tests
└── __init__.py

(Optional) Create a Python environment:

  • For Python3 users:
    • pip install virtualenv
    • virtualenv venv_name
    • source path/to/venv_name activate
  • For Anaconda users:
    • conda create --name conda_env
    • conda activate conda_env
    • conda install pip

Next you need to create a setup.py file in the root folder. It should be similar to the one presented below:

from distutils.core import setup
from setuptools import setup, find_packages
setup(
name='example',
version='0.1dev0',
author='Author Name', author_email='author_email@mail.com',
packages=find_packages(),
long_description=open('README.md').read()
)

You need to create an __init__.py file in the /example directory where you should import the packages (i.e. package_1, and package_2):

# example/__init__.py
from . import package_1, package_2 

After that, you need to run the setup.py as follows:

While being in the root of the folder run the following command: pip install -e .

An example.egg-info directory should now be created in the root directory:

project
├── README.md
├── example
│ ├── __init__.py
│ ├── package_1
│ │ ├── __init__.py
│ │ ├── awesome_module.py
│ │ ├── ...
│ │ └── awesome_module_n.py
│ └── package_2
│ ├── __init__.py
│ └── module.py
├── example.egg-info
│ ├── dependency_links.txt
│ ├── PKG_INFO
│ ├── SOURCES.txt
│ └── top_level.txt
├── setup.py
└── tests
└── __init__.py

If everything when according to plan, you should be able to use the modules you developed in the package_1 from the package_2 directory likewise:

# example/package_2/module.py
from example.package_1.awesome_module import hello

About

A Python project to use as a template when developing a Python application

Resources

Stars

26 stars

Watchers

3 watching

Forks

Used by

Contributors

Languages